Numpy 中 linspace 和 arrange 的用法和区别
在绘图或者计算函数值的时候,我们常常需要生成一些序列,比如生成 0~1000 之间的整数。这时,我们经常用到 Numpy 中的 linspace 和 arange 函数。然而稍不注意,两者就容易用错,特别是linspace,现在对两者的用法和区别说明如下,并指出两者容易用错的地方。
1、arange 函数的用法
为了便于分析,我们假设要生成 0~10 间的整数序列 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],首先 arange 的用法如下:
import numpy as np
x = np.arange(0,10,1) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],注意,没有10
这是arange 的用法:arange(起始值,结束值,间隔) ,需要注意的是,结束值(本例中为10)并不包含在生成的序列中。
2、linspace 函数的用法
同样,我们可以用 linespace 函数来生成这个序列,它的用法为——linspace(起始值,结束值,起始值和结束值之间的个数) ,这样就可以生成等分间隔的序列。但是,针对上述问题,我们很容易想当然地写出以下代码:
x=np.linspace(0,10,10) # [ 0. , 1.11111111, 2.22222222, 3.33333333, 4.44444444, 5.55555556, 6.66666667, 7.77777778, 8.88888889, 10. ]
实际上这是错误的写法,它生成的序列为 [ 0. , 1.11111111, 2.22222222, 3.33333333, 4.44444444, 5.55555556, 6.66666667, 7.77777778, 8.88888889, 10. ],很显然,不符合我们的预期,那么问题出在哪里呢? 它的问题出在 linespace 函数把结束值也包含在生成的序列中,所以两数之间的间隔就变成了10/9,要解决这个问题,有两种办法:
第一种方法是把 linspace 的结束值设为 9:
x = np.linspace(0,9,10) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
第二种方法是让linspace 函数生成的序列不包含结束值:
x = np.linspace(0,10,10,endpoint=False) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
3、总结
1、arange(初始值,结束值,间隔) 生成的序列不包含结束值,linspace(初始值, 结束值, 值的个数) 生成的序列包含结束值。
2、如果要使 linspace 和 arrange 等效,可以用 linspace(初始值, 结束值, 值的个数, endpoint = False). 当然,两者有各自的使用场景,尽量不要混用。arrange 适用于知道序列中相邻两数之间的间隔的情况下,比如生成一定范围内奇数或者偶数的序列。linspace 适合序列长度和序列取值范围已知的情况。比如采样频率为1200 Hz, 也就是说 0~1s 之间有1200 个点。
Numpy 中 linspace 和 arrange 的用法和区别相关推荐
- python中multiply函数_python中numpy中的multiply、*、matul 的区别
numpy中的multiply.*.matul 的区别 1.对于矩阵(matrix)而言,multiply是对应元素相乘,而 * .np.matmul() 函数 与 np.dot()函数 相当于矩阵 ...
- python列表和数组区别java_浅谈numpy中np.array()与np.asarray的区别以及.tolist
array和asarray都可以将结构数据转化为ndarray,但是主要区别就是当数据源是ndarray时,array仍然会copy出一个副本,占用新的内存,但asarray不会. 1.输入为列表时 ...
- numpy中np.array()与np.asarray的区别以及.tolist
参考numpy中np.array()与np.asarray的区别以及.tolist - 云+社区 - 腾讯云 array和asarray都可以将结构数据转化为ndarray,但是主要区别就是当数据源是 ...
- python/numpy中数组array和矩阵matrix的区别
在numpy中,array(实际上是ndarray,表示多维数组)是可以有多维度的,而matrix只有两个维度,即行和列.所以matrix是array的一种特例,因而它继承了array的所有函数,同时 ...
- oracle中drop和delete,oracle中delete drop truncate的用法和区别
数据库的运维中,经常会遇到delete drop truncate的操作,那么如何去把握它们的用法和区别呢? 比如当数据库空间爆满,已经增长到存储空间单个存储文件的最大值32G.你需要通过一些办法释放 ...
- numpy中linspace用法
linspace的功能最初是从MATLAB中学来的,用此来创建等差数列.近期用Python的时候发现也有这个功能,提供相应功能的是numpy.关于MATLAB中的功能就不再进行赘述了,接下来把我可能用 ...
- Perl中use、require的用法和区别
2019独角兽企业重金招聘Python工程师标准>>> Exporter Module usage ...
- 详解在group by分组查询中where 和 having的用法和区别。
我地都知道sql 中 where 和 having 都是用来筛选条件的关键字. 而且having 一般和group by 一齐使用, 但是where 也可以用group by 一齐使用的. 下面用 ...
- 在Linux中su和sudo区别,Linux中su和sudo的用法和区别
目录 sudo sudo:暂时切换到超级用户模式以执行超级用户权限,提示输入密码时该密码为当前用户的密码,而不是超级账户的密码.缺点是每次执行超级用户权限都要在命令前加上 sudo ,优点是在当前终端 ...
最新文章
- iOS 秒数转换成时间,时,分,秒
- 《C#高级编程》既不高级,也不基础,东拼西凑的味道十足。。。
- Java各种对象(PO,BO,VO,DTO,POJO,DAO,Entity,JavaBean,JavaBeans)的区分
- NYOJ 692 Chinese checkers(广搜)
- 如何将catia装配件附材料_在网上买的快餐桌椅如何安装?餐厅快餐桌椅安装顺序与流程知识...
- 当一个程序员真正掌握算法之后,会变得有多强...
- 【笔记】二叉树递归算法和非递归算法的实现 先序/中序/后续遍历 打印结点以及顺序数 构造二叉树
- 【codevs1425】最小的N个和,如何像煞笔一样地写堆
- Rushcrm:CRM系统怎么让企业如此青睐?
- java 中文转首字母_java 中文转成拼音及首字母
- linux--封装redhat镜像
- Unity3D水下动物模型大集合
- 文献翻译:《弱监督学习实现3D人脸重建:从单张图片到图片集》(Accurate 3D Face Reconstruction with Weakly-Supervised Learning)
- Filebeat Filter - Dissect/DNS Reverse
- 微信公众号Token验证 signature验证
- 关于人每天所需热量:2017-3-13
- Android实现3DTouch效果
- python入门(三)列表、元组、range()、字典
- const与指针用法
- 流式计算、实时计算和离线计算
热门文章
- 计算机信息技术外文文献综述,国内外信息技术与课程整合说 文献综述报告...
- 中国大量程序员都是孔乙己,悲催可笑的心态
- 经典蓝牙耳机右外壳模具结构解析
- 【渝粤教育】国家开放大学2018年秋季 2767T养猪技术 参考试题
- 看完这篇 教你玩转渗透测试靶机vulnhub——Noontide
- 2020第十一届蓝桥杯软件类Java B组 决赛(国赛)题目+个人答案
- 光滑曲线_微分几何笔记(2) —— 曲线的参数化
- 企业招聘程序员都在35岁以下,35岁以上的程序员该何去何从!
- ClickHouse 相关博客
- 华为OD机考真题 -书籍长宽度叠放几本