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实现可将字符转换成大写的tcp服务器实例
Apr 29 Python
Django自定义认证方式用法示例
Jun 23 Python
Python面向对象之继承代码详解
Jan 29 Python
Python 使用类写装饰器的小技巧
Sep 30 Python
详解Python计算机视觉 图像扭曲(仿射扭曲)
Mar 27 Python
用Python实现将一张图片分成9宫格的示例
Jul 05 Python
python程序运行进程、使用时间、剩余时间显示功能的实现代码
Jul 11 Python
pandas DataFrame行或列的删除方法的实现示例
Aug 02 Python
pip install python 快速安装模块的教程图解
Oct 08 Python
基于python实现坦克大战游戏
Oct 27 Python
Python爬虫新手入门之初学lxml库
Dec 20 Python
python statsmodel的使用
Dec 21 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
WordPress主题制作中自定义头部的相关PHP函数解析
2016/01/08 PHP
Yii2 queue的队列使用详解
2019/07/19 PHP
超强的IE背景图片闪烁(抖动)的解决办法
2007/09/09 Javascript
JAVASCRIPT  THIS详解 面向对象
2009/03/25 Javascript
&amp;lt;script defer&amp;gt; defer 是什么意思
2009/05/10 Javascript
锋利的jQuery 第三章章节总结的例子
2010/03/23 Javascript
JS+ACTIVEX实现网页选择本地目录路径对话框
2013/03/18 Javascript
js实现鼠标触发图片抖动效果的方法
2015/02/27 Javascript
直接拿来用的15个jQuery代码片段
2015/09/23 Javascript
jquery UI Datepicker时间控件的使用方法(终结版)
2015/11/07 Javascript
在WordPress中加入Google搜索功能的简单步骤讲解
2016/01/04 Javascript
javascript鼠标右键菜单自定义效果
2020/12/08 Javascript
在JavaScript中模拟类(class)及类的继承关系
2016/05/20 Javascript
form表单转Json提交的方法(推荐)
2016/09/23 Javascript
微信小程序  modal弹框组件详解
2016/10/27 Javascript
jQuery基本选择器和层次选择器学习使用
2017/02/27 Javascript
在NPM发布自己造的轮子的方法步骤
2019/03/09 Javascript
小程序server请求微信服务器超时的解决方法
2019/05/21 Javascript
[01:52]深扒TI7聊天轮盘语音出处7
2017/05/11 DOTA
Python编写生成验证码的脚本的教程
2015/05/04 Python
对python字典过滤条件的实例详解
2019/01/22 Python
python opencv判断图像是否为空的实例
2019/01/26 Python
Python3将数据保存为txt文件的方法
2019/09/12 Python
Python Tkinter实例——模拟掷骰子
2020/10/24 Python
python使用dlib进行人脸检测和关键点的示例
2020/12/05 Python
美国亚马逊旗下男装网站:East Dane(支持中文)
2019/09/25 全球购物
施华洛世奇中国官网:SWAROVSKI中国
2020/06/16 全球购物
优秀员工自荐信范文
2013/10/05 职场文书
2014年公司植树节活动方案
2014/03/04 职场文书
高中课程设置方案
2014/05/28 职场文书
解除劳动合同协议书范本
2014/09/13 职场文书
优秀党员自我评价范文
2014/09/15 职场文书
作风建设整改方案
2014/10/27 职场文书
个人道歉信大全
2019/04/11 职场文书
CSS实现两列布局的N种方法
2021/08/02 HTML / CSS
Python之基础函数案例详解
2021/08/30 Python