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自定义解析简单xml格式文件的方法
May 11 Python
使用pyecharts无法import Bar的解决方案
Apr 23 Python
解决python2.7用pip安装包时出现错误的问题
Jan 23 Python
利用python求解物理学中的双弹簧质能系统详解
Sep 29 Python
搞清楚 Python traceback的具体使用方法
May 13 Python
Python从文件中读取指定的行以及在文件指定位置写入
Sep 06 Python
wxPython实现分隔窗口
Nov 19 Python
python爬取王者荣耀全皮肤的简单实现代码
Jan 31 Python
python GUI库图形界面开发之PyQt5工具栏控件QToolBar的详细使用方法与实例
Feb 28 Python
详解用Pytest+Allure生成漂亮的HTML图形化测试报告
Mar 31 Python
python用tkinter实现一个gui的翻译工具
Oct 26 Python
python解析照片拍摄时间进行图片整理
Jul 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
带你了解PHP7 性能翻倍的关键
2015/11/19 PHP
ThinkPHP打水印及设置水印位置的方法
2016/10/14 PHP
脚本安需导入(装载)的三种模式的对比
2007/06/24 Javascript
五个jQuery图片画廊插件 推荐
2011/05/12 Javascript
Angularjs编写KindEditor,UEidtor,jQuery指令
2015/01/28 Javascript
jQuery链式操作实例分析
2015/11/16 Javascript
BootStrap下jQuery自动完成的样式调整
2016/05/30 Javascript
JavaScript判断数字是否为质数的方法汇总
2016/06/02 Javascript
js中通过getElementsByName访问name集合对象的方法
2016/10/31 Javascript
js格式化时间的简单实例
2016/11/27 Javascript
基于bootstrap的选择框插件icheck
2016/12/23 Javascript
canvas仿iwatch时钟效果
2017/03/06 Javascript
详解在React项目中安装并使用Less(用法总结)
2019/03/18 Javascript
vue实现随机验证码功能的实例代码
2019/04/30 Javascript
jquery实现的分页显示功能示例
2019/08/23 jQuery
Vue中登录验证成功后保存token,并每次请求携带并验证token操作
2020/09/08 Javascript
[10:28]2018DOTA2国际邀请赛寻真——VGJ.S寻梦之路
2018/08/15 DOTA
[01:08:29]DOTA2-DPC中国联赛定级赛 RNG vs Aster BO3第一场 1月9日
2021/03/11 DOTA
简单的Python2.7编程初学经验总结
2015/04/01 Python
python检测IP地址变化并触发事件
2018/12/26 Python
python发送多人邮件没有展示收件人问题的解决方法
2019/06/21 Python
pybind11在Windows下的使用教程
2019/07/04 Python
Python3以GitHub为例来实现模拟登录和爬取的实例讲解
2020/07/30 Python
python3中calendar返回某一时间点实例讲解
2020/11/18 Python
浅析HTML5中的download属性使用
2019/03/13 HTML / CSS
德国汉莎航空中国官网: Lufthansa中国
2017/03/30 全球购物
荷兰男士时尚网上商店:Suitable
2017/12/25 全球购物
美国宠物护理专家:Revival Animal Health
2020/01/05 全球购物
人事专员工作职责
2014/02/22 职场文书
乡村文明行动实施方案
2014/03/29 职场文书
综艺节目策划方案
2014/06/13 职场文书
科学发展观演讲稿
2014/09/11 职场文书
领导班子三严三实对照检查材料
2014/09/25 职场文书
员工试用期工作总结
2019/06/20 职场文书
创业计划书之餐饮
2019/09/02 职场文书
element tree树形组件回显数据问题解决
2022/08/14 Javascript