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 转向 Go语言有人给出了 9 大理由
Oct 20 Python
Python 获取主机ip与hostname的方法
Dec 17 Python
在django view中给form传入参数的例子
Jul 19 Python
Django Form 实时从数据库中获取数据的操作方法
Jul 25 Python
python并发编程多进程 模拟抢票实现过程
Aug 20 Python
详解有关PyCharm安装库失败的问题的解决方法
Feb 02 Python
python离线安装外部依赖包的实现
Feb 13 Python
解决Pytorch自定义层出现多Variable共享内存错误问题
Jun 28 Python
Elasticsearch py客户端库安装及使用方法解析
Sep 14 Python
python代数式括号有效性检验示例代码
Oct 04 Python
Python如何批量生成和调用变量
Nov 21 Python
python获取字符串中的email
Mar 31 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
支持oicq头像的留言簿(一)
2006/10/09 PHP
php引用地址改变变量值的问题
2012/03/23 PHP
PHP记录搜索引擎蜘蛛访问网站足迹的方法
2015/04/15 PHP
yii2缓存Caching基本用法示例
2016/07/18 PHP
js 判断浏览器类型 去全角、半角空格 自动关闭当前窗口
2009/04/10 Javascript
js setTimeout 常见问题小结
2013/08/13 Javascript
jQuery教程 $()包装函数来实现数组元素分页效果
2013/08/13 Javascript
JS匀速运动演示示例代码
2013/11/26 Javascript
javascript设计模式之对象工厂函数与构造函数详解
2015/07/30 Javascript
jQuery基于扩展简单实现倒计时功能的方法
2016/05/14 Javascript
深入理解angularjs过滤器
2016/05/25 Javascript
vue多级多选菜单组件开发
2020/09/08 Javascript
js字符串操作总结(必看篇)
2016/11/22 Javascript
微信小程序 获取javascript 里的数据
2017/08/17 Javascript
如何用webpack4.0撸单页/多页脚手架 (jquery, react, vue, typescript)
2019/06/18 jQuery
angularjs请求数据的方法示例
2019/08/06 Javascript
vue中的过滤器及其时间格式化问题
2020/04/09 Javascript
[02:02]DOTA2英雄基础教程 斯拉达
2013/12/11 DOTA
[01:10:16]DOTA2上海特级锦标赛B组资格赛#2 Fnatic VS Spirit第一局
2016/02/27 DOTA
python使用socket远程连接错误处理方法
2015/04/29 Python
python利用datetime模块计算时间差
2015/08/04 Python
浅谈Python的文件类型
2016/05/30 Python
python爬虫 正则表达式使用技巧及爬取个人博客的实例讲解
2017/10/20 Python
Python调用百度根据经纬度查询地址的示例代码
2019/07/07 Python
Django框架序列化与反序列化操作详解
2019/11/01 Python
如何在 Django 模板中输出 &quot;{{&quot;
2020/01/24 Python
使用python图形模块turtle库绘制樱花、玫瑰、圣诞树代码实例
2020/03/16 Python
adidas官方旗舰店:德国运动用品制造商
2017/11/25 全球购物
代理商会议邀请函
2014/01/27 职场文书
黄继光的英雄事迹材料
2014/02/13 职场文书
关于环保的标语
2014/06/13 职场文书
机电专业毕业生求职信
2014/07/01 职场文书
就业导师推荐信范文
2015/03/27 职场文书
药品销售内勤岗位职责
2015/04/13 职场文书
街道办残联2016年助残日活动总结
2016/04/01 职场文书
HTML实现仿Windows桌面主题特效的实现
2022/06/28 HTML / CSS