numpy.linspace使用方法

Numpy refer

https://docs.scipy.org/doc/numpy/reference/generated/numpy.linspace.html

numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None, axis=0)

Parameters


start : array_like

The starting value of the sequence. 序列的初始值。

stop : array_like

The end value of the sequence, unless endpoint is set to False. In that case, the sequence consists of all but the last of num + 1 evenly spaced samples, so that stop is excluded. Note that the step size changes when endpoint is False.

num : int, optional

Number of samples to generate. Default is 50. Must be non-negative. 默认值是50,必须是非负数。

endpoint : bool, optional

If True, stop is the last sample. Otherwise, it is not included. Default is True.

retstep : bool, optional

If True, return (samples, step), where step is the spacing between samples.

dtype : dtype, optional

The type of the output array. If dtype is not given, infer the data type from the other input arguments.

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.

Returns


samples : ndarray

There are num equally spaced samples in the closed interval [start, stop] or the half-open interval [start, stop) (depending on whether endpoint is True or False).

step : float, optional

Only returned if retstep is True

Size of spacing between samples.

例子

1
2
3
4
5
6
7
8
>>> np.linspace(2.0, 3.0, num=5)
array([ 2. , 2.25, 2.5 , 2.75, 3. ])

>>> np.linspace(2.0, 3.0, num=5, endpoint=False)
array([ 2. , 2.2, 2.4, 2.6, 2.8])

>>> np.linspace(2.0, 3.0, num=5, retstep=True)
(array([ 2. , 2.25, 2.5 , 2.75, 3. ]), 0.25)

Graphical illustration:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
>>> import matplotlib.pyplot as plt
>>> N = 8
>>> y = np.zeros(N)

>>> x1 = np.linspace(0, 10, N, endpoint=True)
>>> x2 = np.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()

l1


Numpy sharpsightlab

https://www.sharpsightlabs.com/blog/numpy-linspace/

先看个简单的例子:

1
np.linspace(start = 0, stop = 100, num = 5)

l2

看这张图可能更加好理解:

l3

可以看出,在我们指定的范围内(从0开始,100为结束),有5个元素(0、25、50、75、100)。

另外,如果指定endpoint = False,那100这个值就不包括在内。num在这里我们指定的是5,如果没有指定,那默认值是50。

l4

这张图里有3个参数,分别是start、stop、num。这会是我们很常用的参数。

OK,接下来我们看看默认写法是怎么样的:

1
np.linspace(0, 100, 5)

相当于:

1
np.linspace(start = 0, stop = 100, num = 5)

例子

1
2
3
>>> np.linspace(start = 0, stop = 1, num = 11)

>>> array([ 0. , 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1. ])
1
2
3
>>> np.linspace(start = 0, stop = 100, num = 11)

>>> array([ 0., 10., 20., 30., 40., 50., 60., 70., 80., 90., 100.])
1
2
3
>>> np.linspace(start = 1, stop = 5, num = 4, endpoint = False)

>>> array([ 1., 2., 3., 4.])
1
2
3
>>> np.linspace(start = 0, stop = 100, num = 5, dtype = int)

>>> array([ 0, 25, 50, 75, 100])