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实现从网络下载文件并获得文件大小及类型的方法
Apr 28 Python
pygame播放音乐的方法
May 19 Python
在Mac下使用python实现简单的目录树展示方法
Nov 01 Python
pandas DataFrame行或列的删除方法的实现示例
Aug 02 Python
python爬虫 urllib模块反爬虫机制UA详解
Aug 20 Python
Python Tkinter模块 GUI 可视化实例
Nov 20 Python
python实现二分类的卡方分箱示例
Nov 22 Python
Python‘==‘ 及 ‘is‘相关原理解析
Sep 05 Python
Python获取android设备cpu和内存占用情况
Nov 15 Python
pytorch实现ResNet结构的实例代码
May 17 Python
Python趣味实战之手把手教你实现举牌小人生成器
Jun 07 Python
基于Python实现将列表数据生成折线图
Mar 23 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 面向对象程序设计(oop)学习笔记 (二) - 静态变量的属性和方法及延迟绑定
2014/06/12 PHP
WIN8.1下搭建PHP5.6环境
2015/04/29 PHP
PHP实现的迷你漂流瓶
2015/07/29 PHP
JavaScript DOM 添加事件
2009/02/14 Javascript
Draggable Elements 元素拖拽功能实现代码
2011/03/30 Javascript
通过javascript把图片转化为字符画
2013/10/24 Javascript
js的匿名函数使用介绍
2013/12/11 Javascript
javascript操作数组详解
2014/12/17 Javascript
jQuery中insertBefore()方法用法实例
2015/01/08 Javascript
JS实现自定义简单网页软键盘效果代码
2015/11/05 Javascript
JQuery实现动态操作表格
2017/01/11 Javascript
JavaScript解析任意形式的json树型结构展示
2017/07/23 Javascript
详解JavaScript中操作符和表达式
2018/09/12 Javascript
在Vue项目中用fullcalendar制作日程表的示例代码
2019/08/04 Javascript
关于在LayUI中使用AJAX提交巨坑记录
2019/10/25 Javascript
分享JS表单验证源码(带错误提示及密码等级)
2020/01/05 Javascript
vue treeselect获取当前选中项的label实例
2020/08/31 Javascript
[01:06:54]DOTA2-DPC中国联赛 正赛 RNG vs Dragon BO3 第一场 1月24日
2021/03/11 DOTA
[01:06:54]DOTA2-DPC中国联赛 正赛 SAG vs DLG BO3 第二场 2月28日
2021/03/11 DOTA
简单谈谈Python中的闭包
2016/11/30 Python
浅谈numpy中linspace的用法 (等差数列创建函数)
2017/06/07 Python
python3的UnicodeDecodeError解决方法
2019/12/20 Python
Python数据结构dict常用操作代码实例
2020/03/12 Python
Python小白垃圾回收机制入门
2020/06/09 Python
利用Pycharm + Django搭建一个简单Python Web项目的步骤
2020/10/22 Python
使用HTML5 Geolocation实现一个距离追踪器
2018/04/09 HTML / CSS
世界上获奖最多的手机镜头:Olloclip
2018/03/03 全球购物
巴西女装购物网站:Eclectic
2018/04/24 全球购物
安德玛菲律宾官网:Under Armour菲律宾
2020/07/28 全球购物
销售人员职业生涯规划范文
2014/03/01 职场文书
纪检监察立案决定书
2015/06/24 职场文书
入党申请书怎么写?
2019/06/11 职场文书
教你快速开启Apache SkyWalking的自监控
2021/04/25 Servers
Python数据分析入门之教你怎么搭建环境
2021/05/13 Python
vue项目proxyTable配置和部署服务器
2022/04/14 Vue.js
MySQL 自动填充 create_time 和 update_time
2022/05/20 MySQL