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中的yield浅析
Jun 16 Python
Win7上搭建Cocos2d-x 3.1.1开发环境
Jul 03 Python
深入理解Python中各种方法的运作原理
Jun 15 Python
详解Swift中属性的声明与作用
Jun 30 Python
Python语言检测模块langid和langdetect的使用实例
Feb 19 Python
Django 开发环境与生产环境的区分详解
Jul 26 Python
pytorch 改变tensor尺寸的实现
Jan 03 Python
scrapy在python爬虫中搭建出错的解决方法
Nov 22 Python
python 实现Requests发送带cookies的请求
Feb 08 Python
PyQt5 显示超清高分辨率图片的方法
Apr 11 Python
用基于python的appium爬取b站直播消费记录
Apr 17 Python
你需要掌握的20个Python常用技巧
Feb 28 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
成本8450万,票房仅2亿,口碑两极分化,又一部DC电影扑街了
2020/04/09 欧美动漫
php将url地址转化为完整的a标签链接代码(php为url地址添加a标签)
2014/01/17 PHP
php实现有序数组打印或排序的方法【附Python、C及Go语言实现代码】
2016/11/10 PHP
laravel框架路由分组,中间件,命名空间,子域名,路由前缀实例分析
2020/02/18 PHP
Prototype PeriodicalExecuter对象 学习
2009/07/19 Javascript
IE关闭时判断及AJAX注销案例学习
2013/02/18 Javascript
js控制分页打印、打印分页示例
2014/02/08 Javascript
javascript对象的使用和属性操作示例详解
2014/03/02 Javascript
微信浏览器内置JavaScript对象WeixinJSBridge使用实例
2015/05/25 Javascript
JS实现可调整倒计时间代码分享
2015/08/18 Javascript
JS鼠标拖拽实例分析
2015/11/23 Javascript
javascript实现C语言经典程序题
2015/11/29 Javascript
探析浏览器执行JavaScript脚本加载与代码执行顺序
2016/01/12 Javascript
JavaScript+html5 canvas制作的圆中圆效果实例
2016/01/27 Javascript
js简单判断移动端系统的方法
2016/02/25 Javascript
JS限制条件补全问题实例分析
2016/12/16 Javascript
js canvas实现简单的图像扩散效果
2020/06/28 Javascript
详解RequireJs官方使用教程
2017/10/31 Javascript
webpack 模块热替换原理
2018/04/09 Javascript
vue实现pdf导出解决生成canvas模糊等问题(推荐)
2018/10/18 Javascript
JS实现随机抽取三人
2019/11/06 Javascript
微信小程序:报错(in promise) MiniProgramError
2020/10/30 Javascript
原生JavaScript实现轮播图
2021/01/10 Javascript
ssh批量登录并执行命令的python实现代码
2012/05/25 Python
Pycharm学习教程(4) Python解释器的相关配置
2017/05/03 Python
python 实现对文件夹中的图像连续重命名方法
2018/10/25 Python
CSS3制作圆形滚动进度条动画的示例
2020/11/05 HTML / CSS
英国门销售网站:Green Tree Doors
2020/01/07 全球购物
制定岗位职责的原则
2013/11/08 职场文书
预备党员表决心书
2014/03/11 职场文书
村级环境卫生整治方案
2014/05/04 职场文书
讲文明懂礼貌演讲稿
2014/09/11 职场文书
民政局离婚协议书范本
2014/10/20 职场文书
安全责任书
2015/01/29 职场文书
Vue和Flask通信的实现
2021/05/19 Vue.js
JavaScript获取URL参数的方法分享
2022/04/07 Javascript