np.arrange
指定间距的序列构造, np.linespace
指定序列个数的不定间距的构造。
一、np.linspace(Linear space)
lnp.linspace功能是构造线性空间,也就是一堆等间隔的数字。调用这个方法,你应该给定起点和终点外加一个总个数。
np.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None, axis=0)
间隔大小取决于起点start
、终点stop
和个数num
,你可以通置位retstep
决定间隔大小是否返回,还可以置位endpoint
决定返回序列是否包含终点。在Numpy文档中,start
和end
类型都是array_like
,这是什么意思呢?Numpy中使用的术语"array_like",表示一些能够通过np.array()
构造的所有类型,常见的也就是列表和元组。
太有意思了!之前生成空间中的直线,我还通过自己构建等分点来构造呢,现在可以直接使用linespace
,
p1=np.array([[1,2,3]])
p2=np.array([[10,20,30]])
P=np.linspace(p1,p2,10,axis=1)
关于为什么是axis=1
,如果理解成空间的话,0代表x轴,1代表y轴。
二、np.arange(a range)
arange: A range一个范围,其特点是可以指定间距大小。
numpy.arange([start, ]stop, [step, ]dtype=None)
给定起点、终点和步长(间隔),生成一个等间距的序列,这个序列值域是左闭右开的即: x i ∈ [ s t a r t , e n d ) x_i\in[start,end) xi∈[start,end)。默认步长为1,起点为0。
- 相较于linspace,arange使用比较麻烦。首先间隔正负必须配合起点和终点,其次起点和终点都是一个数,而能是
array_like
。 - 参数若为整数等价于 Python 内置 range函数。
- 缺省构造非常方便。
在什么情况下很简单?构造起点和终点确定的自然数的时候啊!
- 构造一个从零开始的自然数
np.arange(5)
结果是0,1,2,3,4
- 构造一个从2开始的自然数
np.arange(2,5)
结果是2,3,4
三、什么时候用arange什么时候用linspace?
- 需要指定间隔时使用
arange
,需要指定范围时用linspace
; - 操作数组时用
linspace
,仅有一行用arange