python numpy生成等差数列、等比数列的实例


Posted in Python onFebruary 25, 2020

如下所示:

import numpy as np
# 等差数列
print(np.linspace(0.1, 1, 10, endpoint=True))
print(np.arange(0.1, 1.1, 0.1))
"""总结:
  arange 侧重点在于增量,不管产生多少个数
  linspace 侧重于num, 即要产生多少个元素,不在乎增量
"""
 
# 等比数列
np.logspace(1, 4, 4, endpoint=True, base=2) # 2**1---2**4

补充拓展:python 等差数列生成器代码

典型的迭代器模式作用很简单——遍历数据结构。不过,即便不是从集合中获取元素,而 是获取序列中即时生成的下一个值时,也用得到这种基于方法的标准接口。例如,内置的 range 函数用于生成有穷整数等差数列(Arithmetic Progression,AP), itertools.count 函 数用于生成无穷等差数列。

先来看等差数列:

"""
等差数列实现。
"""


class ArithmeticProgression:

  def __init__(self, begin, step, end=None):
    self.begin = begin
    self.step = step
    self.end = end  # None -> 无穷数列

  def __iter__(self):
    result = type(self.begin + self.step)(self.begin)
    forever = self.end is None
    index = 0
    while forever or result < self.end:
      yield result
      index += 1
      result = self.begin + self.step * index


if __name__ == '__main__':
  ap = ArithmeticProgression(0, 1, 3)
  print(ap)
  # print(list(ap))
  a = iter(ap)
  print(next(a))

这是个简单的示例,说明了如何使用生成器函数实现特殊的 __iter__ 方法。然而,如果一个类只是为了构建生成器而去实现 __iter__ 方法,那还不如使用生成器函数。毕竟,生成器函数是制造生成器的 工厂。

def aritprog_gen(begin, step, end=None):
  result = type(begin + step)(begin)
  forever = end is None
  index = 0
  while forever or result < end:
    yield result
    index += 1
    result = begin + step * index

使用itertools模块生成等差数列

python numpy生成等差数列、等比数列的实例

然而,itertools.count 函数从不停止,因此,如果调用 list(count()),Python 会创建一 个特别大的列表,超出可用内存,在调用失败之前,电脑会疯狂地运转。

不过,itertools.takewhile 函数则不同,它会生成一个使用另一个生成器的生成器,在指 定的条件计算结果为 False 时停止。因此,可以把这两个函数结合在一起使用,编写下述 代码:

python numpy生成等差数列、等比数列的实例

利用 takewhile 和 count 函数,写出的代码流畅而简短。

import itertools 


# 注意,下面示例中的 aritprog_gen 不是生成器函数,
# 因为定义体中没有 yield 关键字。
# 但是它会返回一个生成器,
# 因此它与其他生成器函数一样,
# 也是生成器工厂函数。
def aritprog_two_gen(begin, step, end=None):
  first = type(begin + step)(begin)
  ap_gen = itertools.count(first, step)
  if end is not None:
    ap_gen = itertools.takewhile(lambda n: n < end, ap_gen)
  return ap_gen

以上这篇python numpy生成等差数列、等比数列的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python网络爬虫出现乱码问题的解决方法
Jan 05 Python
Python微信企业号开发之回调模式接收微信端客户端发送消息及被动返回消息示例
Aug 21 Python
python使用tkinter实现简单计算器
Jan 30 Python
Python二叉树定义与遍历方法实例分析
May 25 Python
python3的输入方式及多组输入方法
Oct 17 Python
Python列表list排列组合操作示例
Dec 18 Python
python设置环境变量的原因和方法
Jun 24 Python
python实现按关键字筛选日志文件
Dec 24 Python
15行Python代码实现免费发送手机短信推送消息功能
Feb 27 Python
从0到1使用python开发一个半自动答题小程序的实现
May 12 Python
Python性能分析工具py-spy原理用法解析
Jul 27 Python
python 实用工具状态机transitions
Nov 21 Python
信号生成及DFT的python实现方式
Feb 25 #Python
Pycharm远程连接服务器并实现代码同步上传更新功能
Feb 25 #Python
python生成任意频率正弦波方式
Feb 25 #Python
python numpy库linspace相同间隔采样的实现
Feb 25 #Python
Pandas时间序列:时期(period)及其算术运算详解
Feb 25 #Python
基于pygame实现童年掌机打砖块游戏
Feb 25 #Python
python GUI库图形界面开发之PyQt5拖放控件实例详解
Feb 25 #Python
You might like
请php正则走开
2008/03/15 PHP
PHP执行速率优化技巧小结
2008/03/15 PHP
php 调用远程url的六种方法小结
2009/11/02 PHP
PHP入门教程之PHP操作MySQL的方法分析
2016/09/11 PHP
使用laravel的migrate创建数据表的方法
2019/09/30 PHP
让AJAX不依赖后端接口实现方案
2012/12/03 Javascript
JQuery设置和去除disabled属性的5种方法总结
2013/05/16 Javascript
原生js实现tab选项卡切换
2020/03/23 Javascript
Javascript中常见的逻辑题和解决方法
2016/09/17 Javascript
javascript中mouseenter与mouseover的异同
2017/06/06 Javascript
jQuery实现锚点向下平滑滚动特效示例
2017/08/29 jQuery
js贪心算法 钱币找零问题代码实例
2019/09/11 Javascript
详解JavaScript修改注册表的方法
2020/01/05 Javascript
Python 条件判断的缩写方法
2008/09/06 Python
基于python的汉字转GBK码实现代码
2012/02/19 Python
Python中的模块导入和读取键盘输入的方法
2015/10/16 Python
机器学习的框架偏向于Python的13个原因
2017/12/07 Python
python多进程控制学习小结
2018/10/31 Python
python3下载抖音视频的完整代码
2019/06/05 Python
django框架CSRF防护原理与用法分析
2019/07/22 Python
HTML5 CSS3打造相册效果附源码下载
2014/06/16 HTML / CSS
Topshop美国官网:英国快速时尚品牌
2019/05/16 全球购物
String这个类型的class为何定义成final?
2012/11/13 面试题
银行实习生的自我评价
2014/01/13 职场文书
工厂实习感言
2014/01/14 职场文书
《长相思》听课反思
2014/04/10 职场文书
局火灾防控工作方案
2014/05/25 职场文书
青年志愿者活动方案
2014/08/17 职场文书
工会工作个人总结
2015/03/03 职场文书
家长会主持词开场白
2015/05/29 职场文书
农村婚庆主持词
2015/06/29 职场文书
学习十八大的感悟
2015/08/11 职场文书
《桂花雨》教学反思
2016/02/19 职场文书
三八红旗手先进事迹材料(2016推荐版)
2016/02/25 职场文书
分析MySQL优化 index merge 后引起的死锁
2022/04/19 MySQL
深入理解pytorch库的dockerfile
2022/06/10 Python