On this page
numpy.arange
- numpy.arange([start, ]stop, [step, ]dtype=None, *, like=None)
-
Return evenly spaced values within a given interval.
arangecan be called with a varying number of positional arguments:arange(stop): Values are generated within the half-open interval[0, stop)(in other words, the interval includingstartbut excludingstop).arange(start, stop): Values are generated within the half-open interval[start, stop).arange(start, stop, step)Values are generated within the half-open interval[start, stop), with spacing between values given bystep.
For integer arguments the function is roughly equivalent to the Python built-in
range, but returns an ndarray rather than arangeinstance.When using a non-integer step, such as 0.1, it is often better to use
numpy.linspace.See the Warning sections below for more information.
- Parameters
-
- startinteger or real, optional
-
Start of interval. The interval includes this value. The default start value is 0.
- stopinteger or real
-
End of interval. The interval does not include this value, except in some cases where
stepis not an integer and floating point round-off affects the length ofout. - stepinteger or real, optional
-
Spacing between values. For any output
out, this is the distance between two adjacent values,out[i+1] - out[i]. The default step size is 1. Ifstepis specified as a position argument,startmust also be given. - dtypedtype, optional
-
The type of the output array. If
dtypeis not given, infer the data type from the other input arguments. - likearray_like, optional
-
Reference object to allow the creation of arrays which are not NumPy arrays. If an array-like passed in as
likesupports the__array_function__protocol, the result will be defined by it. In this case, it ensures the creation of an array object compatible with that passed in via this argument.New in version 1.20.0.
- Returns
-
- arangendarray
-
Array of evenly spaced values.
For floating point arguments, the length of the result is
ceil((stop - start)/step). Because of floating point overflow, this rule may result in the last element ofoutbeing greater thanstop.
Warning
The length of the output might not be numerically stable.
Another stability issue is due to the internal implementation of
numpy.arange. The actual step value used to populate the array isdtype(start + step) - dtype(start)and notstep. Precision loss can occur here, due to casting or due to using floating points whenstartis much larger thanstep. This can lead to unexpected behaviour. For example:>>> 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])In such cases, the use of
numpy.linspaceshould be preferred.The built-in
rangegenerates Python built-in integers that have arbitrary size, whilenumpy.arangeproducesnumpy.int32ornumpy.int64numbers. This may result in incorrect results for large integer values:>>> 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] # incorrectSee also
-
numpy.linspace -
Evenly spaced numbers with careful handling of endpoints.
-
numpy.ogrid -
Arrays of evenly spaced numbers in N-dimensions.
-
numpy.mgrid -
Grid-shaped arrays of evenly spaced numbers in N-dimensions.
Examples
>>> 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])
© 2005–2022 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.23/reference/generated/numpy.arange.html