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实现跨文件全局变量的方法
Jul 07 Python
Python编程对列表中字典元素进行排序的方法详解
May 26 Python
Python3学习笔记之列表方法示例详解
Oct 06 Python
Python 给某个文件名添加时间戳的方法
Oct 16 Python
Python操作mongodb数据库的方法详解
Dec 08 Python
Django实现微信小程序的登录验证功能并维护登录态
Jul 04 Python
python查看文件大小和文件夹内容的方法
Jul 08 Python
python3中替换python2中cmp函数的实现
Aug 20 Python
python KNN算法实现鸢尾花数据集分类
Oct 24 Python
Python虚拟环境的创建和包下载过程分析
Jun 19 Python
Python爬取豆瓣数据实现过程解析
Oct 27 Python
GitHub上值得推荐的8个python 项目
Oct 30 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
JSON在PHP中的应用介绍
2012/09/08 PHP
PHP中使用GD库创建圆形饼图的例子
2014/11/19 PHP
简单谈谈php浮点数精确运算
2016/03/10 PHP
基于PHP实现数据分页显示功能
2016/05/26 PHP
静态的动态续篇之来点XML
2006/08/15 Javascript
一个不错的用JavaScript实现的UBB编码函数
2007/03/09 Javascript
老鱼 浅谈javascript面向对象编程
2010/03/04 Javascript
jQuery结合Json提交数据到Webservice,并接收从Webservice返回的Json数据
2011/02/18 Javascript
javascript实现设置、获取和删除Cookie的方法
2015/06/01 Javascript
jquery trigger实现联动的方法
2016/02/29 Javascript
JavaScript常用函数工具集:lao-utils
2016/03/01 Javascript
JS基于ocanvas插件实现的简单画板效果代码(附demo源码下载)
2016/04/05 Javascript
Jquery揭秘系列:ajax原生js实现详解(推荐)
2016/06/08 Javascript
javascript实现获取指定精度的上传文件的大小简单实例
2016/10/25 Javascript
jQuery checkbox选中问题之prop与attr注意点分析
2016/11/15 Javascript
使用JavaScript开发跨平台的桌面应用详解
2017/07/27 Javascript
addeventlistener监听scroll跟touch(实例讲解)
2017/08/04 Javascript
Node.js readline模块与util模块的使用
2018/03/01 Javascript
jquery实现垂直无限轮播的方法分析
2019/07/16 jQuery
微信小程序实现3D轮播图效果(非swiper组件)
2019/09/21 Javascript
js数组中去除重复值的几种方法
2020/08/03 Javascript
JavaScript对象访问器Getter及Setter原理解析
2020/12/08 Javascript
在win和Linux系统中python命令行运行的不同
2016/07/03 Python
TensorFlow实现MLP多层感知机模型
2018/03/09 Python
Python代码实现http/https代理服务器的脚本
2019/08/12 Python
HTML5 placeholder属性详解
2016/06/22 HTML / CSS
JSP和EJB可以共享HttpSession么?EJB里面可以改变session里面的内容
2013/06/05 面试题
大学军训感想
2014/02/12 职场文书
餐饮企业总经理岗位职责范文
2014/02/18 职场文书
食品安全承诺书
2014/05/22 职场文书
高效课堂标语
2014/06/26 职场文书
检讨书怎么写
2015/01/23 职场文书
趣味运动会开幕词
2015/01/28 职场文书
学期个人工作总结
2015/02/13 职场文书
企业计划生育责任书
2015/05/09 职场文书
因身体原因离职的辞职信范文
2015/05/12 职场文书