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实现list反转实例汇总
Nov 11 Python
Python用GET方法上传文件
Mar 10 Python
python使用自定义user-agent抓取网页的方法
Apr 15 Python
按日期打印Python的Tornado框架中的日志的方法
May 02 Python
python实现批量下载新浪博客的方法
Jun 15 Python
简单实现python数独游戏
Mar 30 Python
Python小程序 控制鼠标循环点击代码实例
Oct 08 Python
如何基于python测量代码运行时间
Dec 25 Python
Python实现遗传算法(二进制编码)求函数最优值方式
Feb 11 Python
python numpy生成等差数列、等比数列的实例
Feb 25 Python
python PyAUtoGUI库实现自动化控制鼠标键盘
Sep 09 Python
Python 实现PS滤镜的旋涡特效
Dec 03 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
星际争霸 Starcraft 游戏介绍
2020/03/14 星际争霸
解析php取整的几种方式
2013/06/25 PHP
php+js实现异步图片上传实例分享
2014/06/02 PHP
setAttribute 与 class冲突解决
2008/02/17 Javascript
WEB高性能开发之疯狂的HTML压缩
2010/06/19 Javascript
JavaScript中停止执行setInterval和setTimeout事件的方法
2015/05/14 Javascript
javascript学习小结之prototype
2015/12/03 Javascript
jQuery中事件与动画的总结分享
2016/05/24 Javascript
Javascript 实现匿名递归的实例代码
2017/05/25 Javascript
AngularJS中ng-class用法实例分析
2017/07/06 Javascript
jquery ajax异步提交表单数据的方法
2017/10/27 jQuery
jquery引入外部CDN 加载失败则引入本地jq库
2018/05/23 jQuery
jquery实现搜索框功能实例详解
2018/07/23 jQuery
三种Webpack打包方式(小结)
2018/09/19 Javascript
小程序扫描普通链接二维码跳转小程序指定界面方法
2019/05/07 Javascript
深入浅析vue全局环境变量和模式
2020/04/28 Javascript
Javascript前端下载后台传来的文件流代码实例
2020/08/18 Javascript
vuex的使用步骤
2021/01/06 Vue.js
python正则表达式re模块详细介绍
2014/05/29 Python
Python中获取网页状态码的两个方法
2014/11/03 Python
简单的Python的curses库使用教程
2015/04/11 Python
Python字符串拼接六种方法介绍
2017/12/18 Python
使用python接入微信聊天机器人
2020/03/31 Python
PyQt5连接MySQL及QMYSQL driver not loaded错误解决
2020/04/29 Python
全方位了解CSS3的Regions扩展
2015/08/07 HTML / CSS
HTML5和CSS3实例教程总结(推荐)
2016/07/18 HTML / CSS
数字漫画:comiXology
2020/06/13 全球购物
公务员诚信承诺书
2014/05/26 职场文书
做一个有道德的人活动方案
2014/08/25 职场文书
企业法人授权委托书
2014/09/25 职场文书
2015年元旦联欢晚会活动总结
2014/11/28 职场文书
辞职信如何写
2015/02/27 职场文书
美丽心灵观后感
2015/06/01 职场文书
2015大一新生军训感言
2015/08/01 职场文书
2016猴年春节问候语
2015/11/11 职场文书
分享一个vue实现的记事本功能案例
2022/04/11 Vue.js