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爬虫之HTTP异常处理
Nov 05 Python
在java中如何定义一个抽象属性示例详解
Aug 18 Python
Python处理文本换行符实例代码
Feb 03 Python
python list删除元素时要注意的坑点分享
Apr 18 Python
Python 查找list中的某个元素的所有的下标方法
Jun 27 Python
使用Python自动生成HTML的方法示例
Aug 06 Python
关于python中plt.hist参数的使用详解
Nov 28 Python
python实现图像拼接功能
Mar 23 Python
如何通过Python3和ssl实现加密通信功能
May 09 Python
详解tensorflow2.x版本无法调用gpu的一种解决方法
May 25 Python
python属于哪种语言
Aug 16 Python
python破解同事的压缩包密码
Oct 14 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检测图片主要颜色的方法
2015/07/01 PHP
PHP实现二维数组按某列进行排序的方法
2016/11/18 PHP
YII2框架中actions的作用与使用方法示例
2020/03/13 PHP
php模拟post提交请求调用接口示例解析
2020/08/07 PHP
从JavaScript的函数重名看其初始化方式
2007/03/08 Javascript
对JavaScript的eval()中使用函数的进一步讨论
2008/07/26 Javascript
ExtJS 下拉多选框lovcombo
2010/05/19 Javascript
详细介绍8款超实用JavaScript框架
2013/10/25 Javascript
js模拟C#中List的简单实例
2014/03/06 Javascript
ExtJS4如何给同一个formpanel不同的url
2014/05/02 Javascript
Bootstrap图片轮播组件Carousel使用方法详解
2016/10/20 Javascript
js图片放大镜效果实现方法详解
2020/10/28 Javascript
iview日期控件,双向绑定日期格式的方法
2018/03/15 Javascript
在vscode里使用.vue代码模板的方法
2018/04/28 Javascript
Vue自定义弹窗指令的实现代码
2018/08/13 Javascript
JavaScript常见事件处理程序实例总结
2019/01/05 Javascript
微信小程序实现点击效果
2019/06/21 Javascript
[01:10:48]完美世界DOTA2联赛PWL S2 GXR vs PXG 第一场 11.18
2020/11/18 DOTA
python为tornado添加recaptcha验证码功能
2014/02/26 Python
pygame游戏之旅 添加游戏界面按键图形
2018/11/20 Python
Python3.6中Twisted模块安装的问题与解决
2019/04/15 Python
华为校园招聘上机笔试题 扑克牌大小(python)
2020/04/22 Python
django drf框架中的user验证以及JWT拓展的介绍
2019/08/12 Python
python文件及目录操作代码汇总
2020/07/08 Python
html5使用canvas画一条线
2014/12/15 HTML / CSS
什么是用户模式(User Mode)与内核模式(Kernel Mode) ?
2014/07/21 面试题
《燕子专列》教学反思
2014/02/21 职场文书
医学生职业生涯规划书范文
2014/03/13 职场文书
博士毕业生自我鉴定范文
2014/04/13 职场文书
质量主管工作职责
2014/09/26 职场文书
学校师德师风整改方案
2014/10/28 职场文书
给老婆的检讨书
2015/01/27 职场文书
护士求职简历自我评价
2015/03/10 职场文书
公司借条范本
2015/05/25 职场文书
详解Mysql 函数调用优化
2021/04/07 MySQL
postgresql无序uuid性能测试及对数据库的影响
2021/06/11 PostgreSQL