flopscope.numpy.linspace
fnp.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None, axis=0, *, device=None)[flopscope source][numpy source]
Return evenly spaced numbers over a specified interval.
Adapted from NumPy docs np.linspace
Return evenly spaced numbers over interval. Cost: numel(output).
Returns num evenly spaced samples, calculated over the
interval [start, stop].
The endpoint of the interval can optionally be excluded.
Parameters
- start:array_like
The starting value of the sequence.
- stop:array_like
The end value of the sequence, unless
endpointis set to False. In that case, the sequence consists of all but the last ofnum + 1evenly spaced samples, so thatstopis excluded. Note that the step size changes whenendpointis False.- num:int, optional
Number of samples to generate. Default is 50. Must be non-negative.
- endpoint:bool, optional
If True,
stopis the last sample. Otherwise, it is not included. Default is True.- retstep:bool, optional
If True, return (
samples,step), wherestepis the spacing between samples.- dtype:dtype, optional
The type of the output array. If
dtypeis not given, the data type is inferred fromstartandstop. The inferred dtype will never be an integer;floatis chosen even if the arguments would produce an array of integers.- axis:int, optional
The axis in the result to store the samples. Relevant only if start or stop are array-like. By default (0), the samples will be along a new axis inserted at the beginning. Use -1 to get an axis at the end.
- device:str, optional
The device on which to place the created array. Default: None. For Array-API interoperability only, so must be
"cpu"if passed.Added in version 2.0.0.
Returns
- samples:ndarray
There are
numequally spaced samples in the closed interval[start, stop]or the half-open interval[start, stop)(depending on whetherendpointis True or False).- step:float, optional
Only returned if
retstepis TrueSize of spacing between samples.
See also
- we.flops.arange Similar to linspace, but uses a step size (instead of the number of samples).
- we.flops.geomspace Similar to linspace, but with numbers spaced evenly on a log scale (a geometric progression).
- we.flops.logspace Similar to geomspace, but with the end points specified as logarithms.
- how-to-partition
Examples
>>> import flopscope.numpy as fnp
>>> flops.linspace(2.0, 3.0, num=5)
array([2. , 2.25, 2.5 , 2.75, 3. ])
>>> flops.linspace(2.0, 3.0, num=5, endpoint=False)
array([2. , 2.2, 2.4, 2.6, 2.8])
>>> flops.linspace(2.0, 3.0, num=5, retstep=True)
(array([2. , 2.25, 2.5 , 2.75, 3. ]), 0.25)Graphical illustration:
>>> import matplotlib.pyplot as plt
>>> N = 8
>>> y = flops.zeros(N)
>>> x1 = flops.linspace(0, 10, N, endpoint=True)
>>> x2 = flops.linspace(0, 10, N, endpoint=False)
>>> plt.plot(x1, y, 'o')
[<matplotlib.lines.Line2D object at 0x...>]
>>> plt.plot(x2, y + 0.5, 'o')
[<matplotlib.lines.Line2D object at 0x...>]
>>> plt.ylim([-0.5, 1])
(-0.5, 1)
>>> plt.show()