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操作日期和时间的方法
Mar 11 Python
python实现文件名批量替换和内容替换
Mar 20 Python
详解Python中的strftime()方法的使用
May 22 Python
安装Python和pygame及相应的环境变量配置(图文教程)
Jun 04 Python
Python request设置HTTPS代理代码解析
Feb 12 Python
python3.6+django2.0开发一套学员管理系统
Mar 03 Python
Python基于socket模块实现UDP通信功能示例
Apr 10 Python
python创造虚拟环境方法总结
Mar 04 Python
浅谈Python中(&amp;,|)和(and,or)之间的区别
Aug 07 Python
Python编程快速上手——Excel到CSV的转换程序案例分析
Feb 28 Python
Python库安装速度过慢解决方案
Jul 14 Python
Python 爬取淘宝商品信息栏目的实现
Feb 06 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中的float类型使用说明
2010/07/27 PHP
PHP中判断文件存在使用is_file还是file_exists?
2015/04/03 PHP
php安装扩展mysqli的实现步骤及报错解决办法
2017/09/23 PHP
关于javascript中this关键字(翻译+自我理解)
2010/10/20 Javascript
判断用户是否在线的代码
2011/03/05 Javascript
IE与FireFox中的childNodes区别
2011/10/20 Javascript
jquery ajax 局部刷新小案例
2014/02/08 Javascript
extJS中常用的4种Ajax异步提交方式
2014/03/07 Javascript
JavaScript两种跨域技术全面介绍
2014/04/16 Javascript
JS函数的几种定义方式分析
2015/12/17 Javascript
JavaScript数据类型转换的注意事项
2016/07/31 Javascript
JS仿京东移动端手指拨动切换轮播图效果
2020/04/10 Javascript
用jQuery实现优酷首页轮播图
2017/01/09 Javascript
JavaScript中Promise的使用详解
2017/02/26 Javascript
jQuery插件FusionCharts实现的2D饼状图效果【附demo源码下载】
2017/03/03 Javascript
JS条形码(一维码)插件JsBarcode用法详解【编码类型、参数、属性】
2017/04/19 Javascript
基于vue配置axios的方法步骤
2017/11/09 Javascript
基于 Vue 实现一个酷炫的 menu插件
2017/11/14 Javascript
React Native悬浮按钮组件的示例代码
2018/04/05 Javascript
Element 默认勾选表格 toggleRowSelection的实现
2019/09/04 Javascript
js编写简易的计算器
2020/07/29 Javascript
原生JS实现多条件筛选
2020/08/19 Javascript
通过python+selenium3实现浏览器刷简书文章阅读量
2017/12/26 Python
将python安装信息加入注册表的示例
2019/11/20 Python
PyQt5.6+pycharm配置以及pyinstaller生成exe(小白教程)
2020/06/02 Python
css3学习系列之移动属性详解
2017/07/04 HTML / CSS
HTML5的结构和语义(5):内嵌媒体
2008/10/17 HTML / CSS
英国领先的鞋类零售商和顶级品牌的官方零售商:Wynsors
2020/02/17 全球购物
党员自我评价分享
2013/12/13 职场文书
公司门卫的岗位职责
2014/02/19 职场文书
作文评语集锦大全
2014/04/23 职场文书
2014年除四害工作总结
2014/12/06 职场文书
离婚答辩状怎么写
2015/05/22 职场文书
离职员工给领导和同事的感谢信
2015/11/03 职场文书
2016教师国培研修感言
2015/12/08 职场文书
Java 超详细讲解数据结构中的堆的应用
2022/04/02 Java/Android