numpy.arange#
- numpy.arange([start,]stop,[step,]dtype=None,*,device=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 includingstart butexcludingstop).arange(start,stop): Values are generated within the half-openinterval[start,stop).arange(start,stop,step)Values are generated within the half-openinterval[start,stop), with spacing between values given bystep.
For integer arguments the function is roughly equivalent to the Pythonbuilt-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 defaultstart value is 0.
- stopinteger or real
End of interval. The interval does not include this value, exceptin some cases wherestep is not an integer and floating pointround-off affects the length ofout.
- stepinteger or real, optional
Spacing between values. For any outputout, this is the distancebetween two adjacent values,
out[i+1]-out[i]. The defaultstep size is 1. Ifstep is specified as a position argument,start must also be given.- dtypedtype, optional
The type of the output array. If
dtypeis not given, infer the datatype from the other input arguments.- devicestr, optional
The device on which to place the created array. Default:
None.For Array-API interoperability only, so must be"cpu"if passed.New in version 2.0.0.
- likearray_like, optional
Reference object to allow the creation of arrays which are notNumPy arrays. If an array-like passed in as
likesupportsthe__array_function__protocol, the result will be definedby it. In this case, it ensures the creation of an array objectcompatible 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 ofout being greaterthanstop.
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 losscan occur here, due to casting or due to using floating points whenstart is much larger thanstep. This can lead to unexpectedbehaviour. 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
rangegeneratesPython built-in integersthat have arbitrary size, whilenumpy.arangeproducesnumpy.int32ornumpy.int64numbers. This may result inincorrect results for large integer values:>>>power=40>>>modulo=10000>>>x1=[(n**power)%moduloforninrange(8)]>>>x2=[(n**power)%moduloforninnp.arange(8)]>>>print(x1)[0, 1, 7776, 8801, 6176, 625, 6576, 4001] # correct>>>print(x2)[0, 1, 7776, 7185, 0, 5969, 4816, 3361] # incorrect
See also
numpy.linspaceEvenly spaced numbers with careful handling of endpoints.
numpy.ogridArrays of evenly spaced numbers in N-dimensions.
numpy.mgridGrid-shaped arrays of evenly spaced numbers in N-dimensions.
- How to create arrays with regularly-spaced values
Examples
>>>importnumpyasnp>>>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])