我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...

不出所料,本文这个可以生成个等差数列数据的linspace()函数,又是来自numpynumpy果然是个神奇的数学计算包。不过,本文的np.linspace()函数,和以前描述过的np.arange()函数,是非常的相似。所以,本文会对两者进行一下对比。

苏南大叔:python教程,如何利用linspace()生成等差数列?对比arange() - numpy-linspace-数列
python教程,如何利用linspace()生成等差数列?对比arange()(图3-1)

苏南大叔的"程序如此灵动"技术博客,记录苏南大叔的代码编程经验总结。本文测试环境:win10python@3.11.0numpy@1.24.2

np.arange()对比

这个np.arange()函数,在以前已经做过描述:

下面的代码是做个简要的回顾:

import numpy as np

x = np.arange(10)
print(x)  #  [0 1 2 3 4 5 6 7 8 9]

x = np.arange(0, 10, 5)
print(x)  # [0 5]

输出:

[0 1 2 3 4 5 6 7 8 9]
[0 5]

苏南大叔:python教程,如何利用linspace()生成等差数列?对比arange() - arange
python教程,如何利用linspace()生成等差数列?对比arange()(图3-2)

np.linspace()原型

函数原型如下:

numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)

参数含义对照表:

参数含义
start开始点
stop结束点
num要生成的等间隔样例数量,默认为 50
endpoint是否在间隔的末端包含 stop 值,默认为 True
retstep是否返回样例间隔。如果为 True,则返回 (samples, step)
dtype输出数组类型

np.linspace()范例

下面的是一些范例:

import numpy as np

x = np.linspace(0, 10, 5)
print(x)     # [ 0.   2.5  5.   7.5 10. ]

x = np.linspace(0, 10, 5, endpoint=False)
print(x)     # [0. 2. 4. 6. 8.]  不包括最后的10,和arange()就很相似了

x, step = np.linspace(0, 10, 5, retstep=True)
print(x)     #  [ 0.   2.5  5.   7.5 10. ]
print(step)  # 2.5

x = np.linspace(0, 10, 5, dtype=int)
print(x)     # [ 0  2  5  7 10]

输出:

[ 0.   2.5  5.   7.5 10. ]
[0. 2. 4. 6. 8.]
[ 0.   2.5  5.   7.5 10. ]
2.5
[ 0  2  5  7 10]

苏南大叔:python教程,如何利用linspace()生成等差数列?对比arange() - linspace
python教程,如何利用linspace()生成等差数列?对比arange()(图3-3)

np.arange() 对比 np.linspace()

对比一下的话:

  • arange()可以只传递一个最大值maxlinspace()至少要写两个值startend
  • arange()的生成范围是[min,max)linspace()的生成范围则是:[start,end]
  • arange()的第三个参数是步长steplinspace()的第三个参数是num(生成多少个点),步长step是自动计算的。
  • linspace()存在着多个其它参数:endpoint/retstep/dtype
  • linspace()的生成结果,即使是整数,也显示为浮点(后面有个.)。

再次对比总结

方法参数1参数2参数3参数4参数5参数6返回值
.arange()startendstep=1[i]/[f]
.linspace()startendnum=50endpoint=Trueretstep=Falsedtype=None[f]

忽略np.linspace()的后三个参数,再次来对比一下两个方法。下面的例子,可以一眼看出两者最大区别:

import numpy as np
a1 = np.arange(6)      # [0 1 2 3 4 5]
# a2 = np.linspace(6)  # TypeError: linspace() missing 1 required positional argument: 'stop'

a1 = np.arange(0,6)    # [0 1 2 3 4 5]
a2 = np.linspace(0,6)
'''
[0.         0.12244898 0.24489796 0.36734694 0.48979592 0.6122449
 0.73469388 0.85714286 0.97959184 1.10204082 1.2244898  1.34693878
 1.46938776 1.59183673 1.71428571 1.83673469 1.95918367 2.08163265
 2.20408163 2.32653061 2.44897959 2.57142857 2.69387755 2.81632653
 2.93877551 3.06122449 3.18367347 3.30612245 3.42857143 3.55102041
 3.67346939 3.79591837 3.91836735 4.04081633 4.16326531 4.28571429
 4.40816327 4.53061224 4.65306122 4.7755102  4.89795918 5.02040816
 5.14285714 5.26530612 5.3877551  5.51020408 5.63265306 5.75510204
 5.87755102 6.        ]
'''

a1 = np.arange(0,6,3)   # [0 3]
a2 = np.linspace(0,6,3) # [0. 3. 6.]
方法参数个数startstop第三个参数
np.arange()一个默认0不包含stop默认步长1
np.linspace()一个start不写就报错已经报错了
np.arange()两个start包含stop不包含默认步长1
np.linspace()两个start包含stop包含默认返回个数50
np.arange()三个start包含stop不包含步长
np.linspace()三个start包含stop包含个数

相关文章

结束语

苏南大叔的python系列文章,请点击:

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。

 【福利】 腾讯云最新爆款活动!1核2G云服务器首年50元!

 【源码】本文代码片段及相关软件,请点此获取更多信息

 【绝密】秘籍文章入口,仅传授于有缘之人   python