np.arange
和 np.linspace
虽然都是用来生成数值数组的函数,但它们的作用和用途是有明显区别的,这就是为什么Numpy提供了这两个不同的函数。
np.arange
np.arange
类似于Python的内置函数 range
,它用于生成一个在给定间隔内的等差数列。其基本用法是:
np.arange([start,] stop[, step,], dtype=None)
关键点:
- 它生成的是一个等差数列,即每个元素之间的差是固定的。
start
是序列的起始值,默认为0。stop
是序列的结束值,但不包括在内。step
是序列的步长,默认为1。dtype
指定了返回数组的数据类型。
例如:
np.arange(0, 10, 2) # 生成数组 [0, 2, 4, 6, 8]
np.linspace
np.linspace
用于生成在指定区间内均匀分布的数值数组。其基本用法是:
np.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)
关键点:
- 它生成的是一个在指定区间内均匀分布的数列,即元素之间的间隔是相等的。
start
是区间的起始值。stop
是区间的结束值。num
是要生成的样本数量,默认为50。endpoint
指定是否包含结束值,默认为True。retstep
如果为True,则返回数组和步长。dtype
指定了返回数组的数据类型。
例如:
np.linspace(0, 10, 5) # 生成数组 [ 0., 2.5, 5., 7.5, 10.]
区别和用途
np.arange
用于当你需要生成一个具有固定步长的等差数列时。np.linspace
用于当你需要在指定的起始和结束值之间生成固定数量的均匀分布样本时。
简而言之,np.arange
更适合当你知道步长,而np.linspace
更适合当你知道需要生成的元素数量。这两个函数的这种区别使得它们在不同的场景下非常有用。