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实现telnet服务器的方法
Jul 10 Python
浅谈Python单向链表的实现
Dec 24 Python
一篇文章读懂Python赋值与拷贝
Apr 19 Python
python递归函数绘制分形树的方法
Jun 22 Python
pandas中的series数据类型详解
Jul 06 Python
python安装本地whl的实例步骤
Oct 12 Python
使用python 的matplotlib 画轨道实例
Jan 19 Python
Python递归及尾递归优化操作实例分析
Feb 01 Python
python 两个一样的字符串用==结果为false问题的解决
Mar 12 Python
python脚本定时发送邮件
Dec 22 Python
Python list去重且保持原顺序不变的方法
Apr 03 Python
写一个Python脚本下载哔哩哔哩舞蹈区的所有视频
May 31 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中将数组转成字符串并保存到数据库中的函数代码
2013/09/29 PHP
使用PHP导出Redis数据到另一个Redis中的代码
2014/03/12 PHP
php+html5实现无刷新图片上传教程
2016/01/22 PHP
PHP使用redis消息队列发布微博的方法示例
2017/06/22 PHP
Jquery 插件学习实例1 插件制作说明与tableUI优化
2010/04/02 Javascript
基于jquery的页面划词搜索JS
2010/09/14 Javascript
引用 js在IE与FF之间的区别详细解析
2013/11/20 Javascript
javascript实现根据3原色制作颜色选择器的方法
2015/07/17 Javascript
使用jquery实现仿百度自动补全特效
2015/07/23 Javascript
js基础知识(公有方法、私有方法、特权方法)
2015/11/06 Javascript
JavaScript数据结构链表知识详解
2016/11/21 Javascript
JS正则表达式判断有效数实例代码
2017/03/13 Javascript
基于Vue实现微信小程序的图文编辑器
2018/07/25 Javascript
jQuery AJAX 方法success()后台传来的4种数据详解
2018/08/08 jQuery
nodejs初始化init的示例代码
2018/10/10 NodeJs
vue项目首屏加载时间优化实战
2019/04/23 Javascript
vue-router 前端路由之路由传值的方式详解
2019/04/30 Javascript
vue源码中的检测方法的实现
2019/09/26 Javascript
Node.JS获取GET,POST数据之queryString模块使用方法详解
2020/02/06 Javascript
js实现消灭星星(web简易版)
2020/03/24 Javascript
JavaScript实现随机点名小程序
2020/10/29 Javascript
使用vant的地域控件追加全部选项
2020/11/03 Javascript
vue图片裁剪插件vue-cropper使用方法详解
2020/12/16 Vue.js
Taro小程序自定义顶部导航栏功能的实现
2020/12/17 Javascript
Java 生成随机字符的示例代码
2021/01/13 Javascript
python 全文检索引擎详解
2017/04/25 Python
使用python制作一个为hex文件增加版本号的脚本实例
2019/06/12 Python
完美解决python3.7 pip升级 拒绝访问问题
2019/07/12 Python
命令行运行Python脚本时传入参数的三种方式详解
2019/10/11 Python
Python编写一个验证码图片数据标注GUI程序附源码
2019/12/09 Python
python 遗传算法求函数极值的实现代码
2020/02/11 Python
Python实现在Windows平台修改文件属性
2020/03/05 Python
Yves Rocher捷克官方网站:植物化妆品的创造者
2019/07/31 全球购物
Opodo意大利:欧洲市场上领先的在线旅行社
2019/10/24 全球购物
年终自我鉴定
2013/10/09 职场文书
使用pandas或numpy处理数据中的空值(np.isnan()/pd.isnull())
2021/05/14 Python