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展示动态规则法用以解决重叠子问题的示例
Apr 02 Python
剖析Django中模版标签的解析与参数传递
Jul 21 Python
深入解析Python中的list列表及其切片和迭代操作
Mar 13 Python
结合Python的SimpleHTTPServer源码来解析socket通信
Jun 27 Python
Anaconda 离线安装 python 包的操作方法
Jun 11 Python
详解Python列表赋值复制深拷贝及5种浅拷贝
May 15 Python
解决yum对python依赖版本问题
Jul 05 Python
Python 的AES加密与解密实现
Jul 09 Python
解决Django中修改js css文件但浏览器无法及时与之改变的问题
Aug 31 Python
使用Python制作缩放自如的圣诞老人(圣诞树)
Dec 25 Python
python输出数学符号实例
May 11 Python
使用Keras实现简单线性回归模型操作
Jun 12 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
IIS7.X配置PHP运行环境小结
2011/06/09 PHP
php中global和$GLOBALS[]的分析之一
2012/02/02 PHP
textarea的value是html文件源代码,存成html文件的代码
2007/04/20 Javascript
兼容FF和IE的动态table示例自写
2013/10/21 Javascript
jquery获取颜色在ie和ff下的区别示例介绍
2014/03/28 Javascript
seaJs的模块定义和模块加载浅析
2014/06/06 Javascript
js使用removeChild方法动态删除div元素
2014/08/01 Javascript
原生js结合html5制作简易的双色子游戏
2015/03/30 Javascript
JavaScipt中栈的实现方法
2016/02/17 Javascript
vue不通过路由直接获取url中参数的方法示例
2017/08/24 Javascript
JavaScript实现多重继承的方法分析
2018/01/09 Javascript
微信小程序实现自定义加载图标功能
2018/07/19 Javascript
Angular6 正则表达式允许输入部分中文字符
2018/09/10 Javascript
python机器学习理论与实战(四)逻辑回归
2018/01/19 Python
Python 查找字符在字符串中的位置实例
2018/05/02 Python
numpy实现合并多维矩阵、list的扩展方法
2018/05/08 Python
使用EduBlock轻松学习Python编程
2018/10/08 Python
使用Python进行目录的对比方法
2018/11/01 Python
对pandas通过索引提取dataframe的行方法详解
2019/02/01 Python
python 哈希表实现简单python字典代码实例
2019/09/27 Python
Python 读取 YUV(NV12) 视频文件实例
2019/12/09 Python
Python数组拼接np.concatenate实现过程
2020/04/18 Python
加拿大票务网站:Ticketmaster加拿大
2017/07/17 全球购物
留学自荐信的技巧
2013/10/17 职场文书
旅游管理专业生自荐信范文
2014/01/02 职场文书
简历中的自我评价怎么写
2014/01/29 职场文书
电气个人求职信范文
2014/02/04 职场文书
国旗下的演讲稿
2014/05/08 职场文书
大班亲子运动会方案
2014/06/10 职场文书
服务口号大全
2014/06/11 职场文书
经典演讲稿开场白
2014/08/25 职场文书
上党课的心得体会
2014/09/02 职场文书
预备党员学习十八届三中全会精神思想汇报
2014/09/13 职场文书
25句企业管理语录:助你迅速打开思路,句句经典!
2020/01/14 职场文书
goland 设置project gopath的操作
2021/05/06 Golang
Python的三个重要函数详解
2022/01/18 Python