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列表推导式的使用方法
Nov 21 Python
使用Python发送邮件附件以定时备份MySQL的教程
Apr 25 Python
Python实现队列的方法
May 26 Python
Python 包含汉字的文件读写之每行末尾加上特定字符
Dec 12 Python
高质量Python代码编写的5个优化技巧
Nov 16 Python
python实现自动登录
Sep 17 Python
Python+OpenCV实现图像融合的原理及代码
Dec 03 Python
Python实现的序列化和反序列化二叉树算法示例
Mar 02 Python
python爬虫租房信息在地图上显示的方法
May 13 Python
python 如何将数据写入本地txt文本文件的实现方法
Sep 11 Python
Python基于内置库pytesseract实现图片验证码识别功能
Feb 24 Python
Python Socketserver实现FTP文件上传下载代码实例
Mar 27 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递归使用示例(php递归函数)
2014/02/14 PHP
php魔法函数与魔法常量使用介绍
2017/07/23 PHP
PHP实现生成模糊图片的方法示例
2017/12/21 PHP
基于Jquery的表格隔行换色,移动换色,点击换色插件
2010/12/22 Javascript
JQuery文本改变触发事件如聚焦事件、失焦事件
2014/01/15 Javascript
Js 正则表达式知识汇总
2014/12/02 Javascript
实例讲解JQuery中this和$(this)区别
2014/12/08 Javascript
VS2008中使用JavaScript调用WebServices
2014/12/18 Javascript
如何实现移动端浏览器不显示 pc 端的广告
2015/10/15 Javascript
angularjs 源码解析之injector
2016/08/22 Javascript
最全面的百度地图JavaScript离线版开发
2016/09/10 Javascript
详解node.js搭建代理服务器请求数据
2017/04/08 Javascript
JavaScript动态添加数据到表单并提交的几种方式
2019/06/26 Javascript
微信小程序select下拉框实现源码
2019/11/08 Javascript
vue实现购物车的小练习
2020/12/21 Vue.js
[02:30]联想杯DOTA2完美世界全国高校联赛—北京站现场
2015/11/16 DOTA
天翼开放平台免费短信验证码接口使用实例
2013/12/18 Python
Python标准库inspect的具体使用方法
2017/12/06 Python
python 脚本生成随机 字母 + 数字密码功能
2018/05/26 Python
对Python中创建进程的两种方式以及进程池详解
2019/01/14 Python
你可能不知道的Python 技巧小结
2020/01/29 Python
python GUI库图形界面开发之PyQt5时间控件QTimer详细使用方法与实例
2020/02/26 Python
tensorflow与numpy的版本兼容性问题的解决
2021/01/08 Python
使用Python获取爱奇艺电视剧弹幕数据的示例代码
2021/01/12 Python
联想中国官方商城:Lenovo China
2017/10/18 全球购物
June Jacobs尊积帕官网:知名的spa水疗护肤品牌
2019/03/21 全球购物
会计实习生自我鉴定
2013/12/12 职场文书
初三班主任寄语大全
2014/04/04 职场文书
公休请假条
2014/04/11 职场文书
物业管理委托协议(2篇)
2014/09/23 职场文书
英文慰问信
2015/02/14 职场文书
大学生敬老院活动总结
2015/05/07 职场文书
初中军训感想
2015/08/07 职场文书
聊聊Python中关于a=[[]]*3的反思
2021/06/02 Python
Centos系统通过Docker安装并搭建MongoDB数据库
2022/04/12 MongoDB
搭建Yolov5服务器
2022/04/30 Servers