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中的编码知识整理汇总
Jan 26 Python
Python实现二叉堆
Feb 03 Python
Python运行报错UnicodeDecodeError的解决方法
Jun 07 Python
Python之批量创建文件的实例讲解
May 10 Python
Python实现的爬取网易动态评论操作示例
Jun 06 Python
使用python绘制二元函数图像的实例
Feb 12 Python
python通过TimedRotatingFileHandler按时间切割日志
Jul 17 Python
Django中reverse反转并且传递参数的方法
Aug 06 Python
Python中zipfile压缩文件模块的基本使用教程
Jun 14 Python
记录一下scrapy中settings的一些配置小结
Sep 28 Python
PyCharm2019.3永久激活破解详细图文教程,亲测可用(不定期更新)
Oct 29 Python
python实现层次聚类的方法
Nov 01 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几个数学计算的内部函数学习整理
2011/08/06 PHP
php打印输出棋盘的实现方法
2014/12/23 PHP
PHP Cookei记录用户历史浏览信息的代码
2016/02/03 PHP
laravel 框架实现无限级分类的方法示例
2019/10/31 PHP
实例:尽可能写友好的Javascript代码
2006/10/09 Javascript
分享33个jQuery与CSS3实现的绚丽鼠标悬停效果
2014/12/15 Javascript
JS中产生标识符方式的演变
2015/06/12 Javascript
jQuery日历插件datepicker用法详解
2016/03/03 Javascript
js计算时间差代码【包括计算,天,时,分,秒】
2016/04/26 Javascript
VueJS 集成 Medium Editor的示例代码 (自定义编辑器按钮)
2017/08/24 Javascript
VSCode中如何利用d.ts文件进行js智能提示
2018/04/13 Javascript
vue的style绑定background-image的方式和其他变量数据的区别详解
2018/09/03 Javascript
VueCli3构建TS项目的方法步骤
2018/11/07 Javascript
浅谈layui框架自带分页和表格重载的接口解析问题
2019/09/11 Javascript
Angular单元测试之事件触发的实现
2020/01/20 Javascript
小程序瀑布流组件实现翻页与图片懒加载
2020/05/19 Javascript
jQuery实现全选按钮
2021/01/01 jQuery
[46:47]2014 DOTA2国际邀请赛中国区预选赛5.21 LGD-CDEC VS NE
2014/05/22 DOTA
Python实现字符串的逆序 C++字符串逆序算法
2020/05/28 Python
pandas中apply和transform方法的性能比较及区别介绍
2018/10/30 Python
python使用 request 发送表单数据操作示例
2019/09/25 Python
基于Python实现ComicReaper漫画自动爬取脚本过程解析
2019/11/11 Python
Python使用gluon/mxnet模块实现的mnist手写数字识别功能完整示例
2019/12/18 Python
Docker部署Python爬虫项目的方法步骤
2020/01/19 Python
Python API len函数操作过程解析
2020/03/05 Python
python 已知平行四边形三个点,求第四个点的案例
2020/04/12 Python
Django 用户登陆访问限制实例 @login_required
2020/05/13 Python
css3 自定义字体font-face使用介绍
2014/05/14 HTML / CSS
缓解脚、腿和背部疼痛:Z-CoiL鞋
2019/03/12 全球购物
毕业学生推荐信
2013/12/01 职场文书
竞选演讲稿范文
2013/12/28 职场文书
三八妇女节寄语
2015/02/27 职场文书
2015年小学辅导员工作总结
2015/05/27 职场文书
公司备用金管理制度
2015/08/04 职场文书
使用Golang的channel交叉打印两个数组的操作
2021/04/29 Golang
使用HttpSessionListener监听器实战
2022/03/17 Java/Android