numpy.arange #

麻木的。arange ( [开始, ]停止, [步骤, ] dtype=无, * , like=无) #

返回给定间隔内均匀分布的值。

arange可以使用不同数量的位置参数来调用:

  • arange(stop):在半开区间 (即包含start但不包含stop 的区间)内生成值。[0, stop)

  • arange(start, stop):在半开区间内生成值。[start, stop)

  • arange(start, stop, step)值在半开区间 内生成,值之间的间距由 给定 。[start, stop)step

对于整数参数,该函数大致相当于 Python 内置函数range,但返回一个 ndarray 而不是range 实例。

当使用非整数步长(例如 0.1)时,通常最好使用 numpy.linspace

有关详细信息,请参阅下面的警告部分。

参数
起始整数或实数,可选

间隔开始。间隔包括该值。默认起始值​​为 0。

停止整数或实数

间隔结束。间隔不包括此值,除非在某些情况下,step不是整数并且浮点舍入会影响out的长度。

步长整数或实数,可选

值之间的间距。对于任何输出out,这是两个相邻值 之间的距离。默认步长为 1。如果将step指定为位置参数, 则还必须给出start 。out[i+1] - out[i]

数据类型数据类型,可选

输出数组的类型。如果dtype未给出,则从其他输入参数推断数据类型。

类似array_like,可选

允许创建非 NumPy 数组的引用对象。如果传入的类似数组like支持__array_function__协议,则结果将由它定义。在这种情况下,它确保创建一个与通过此参数传入的数组对象兼容的数组对象。

1.20.0 版本中的新增功能。

返回
排列ndarray

均匀分布的值的数组。

对于浮点参数,结果的长度为 。由于浮点溢出,此规则可能会导致out的最后一个元素大于stopceil((stop - start)/step)

警告

输出的长度可能在数值上不稳定。

另一个稳定性问题是由于 numpy.arange.用于填充数组的实际步骤值是 而不是步骤。由于铸造或当 start远大于step时使用浮点,此处可能会发生精度损失。这可能会导致意外的行为。例如:dtype(start + step) - dtype(start)

>>> np.arange(0, 5, 0.5, dtype=int)
array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0])
>>> np.arange(-3, 3, 0.5, dtype=int)
array([-3, -2, -1,  0,  1,  2,  3,  4,  5,  6,  7,  8])

numpy.linspace在这种情况下,应优先使用。

内置函数生成range具有任意大小的 Python 内置整数,同时numpy.arange 生成numpy.int32ornumpy.int64数字。这可能会导致大整数值的结果不正确:

>>> power = 40
>>> modulo = 10000
>>> x1 = [(n ** power) % modulo for n in range(8)]
>>> x2 = [(n ** power) % modulo for n in np.arange(8)]
>>> print(x1)
[0, 1, 7776, 8801, 6176, 625, 6576, 4001]  # correct
>>> print(x2)
[0, 1, 7776, 7185, 0, 5969, 4816, 3361]  # incorrect

也可以看看

numpy.linspace

均匀分布的数字并仔细处理端点。

numpy.ogrid

N 维中均匀分布的数字数组。

numpy.mgrid

N 维中均匀分布的数字的网格状阵列。

如何创建具有规则间隔值的数组

例子

>>> np.arange(3)
array([0, 1, 2])
>>> np.arange(3.0)
array([ 0.,  1.,  2.])
>>> np.arange(3,7)
array([3, 4, 5, 6])
>>> np.arange(3,7,2)
array([3, 5])