1. 程式人生 > >numpy.linspace使用詳解

numpy.linspace使用詳解

sts images div ... sam button mil 其他 ive

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

在指定的間隔內返回均勻間隔的數字。

返回num均勻分布的樣本,在[start, stop]。

這個區間的端點可以任意的被排除在外。

Parameters(參數):

start : scalar(標量)

The starting value of the sequence(序列的起始點).

stop : scalar

序列的結束點,除非endpoint被設置為False,在這種情況下, the sequence consists of all but the last of num + 1

evenly spaced samples(該序列包括所有除了最後的num+1上均勻分布的樣本(感覺這樣翻譯有點坑)), 以致於stop被排除.當endpoint is False的時候註意步長的大小(下面有例子).

num : int, optional(可選)

生成的樣本數,默認是50。必須是非負。

endpoint : bool, optional

如果是真,則一定包括stop,如果為False,一定不會有stop

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(推斷這個輸入用例從其他的輸入中).

New in version 1.9.0.

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(只有當retstep設置為真的時候才會存在)

Only returned if retstep is True

Size of spacing between samples.

See also

arange
Similar to linspace, but uses a step size (instead of the number of samples).
arange使用的是步長,而不是樣本的數量
logspace
Samples uniformly distributed in log space.
當endpoint被設置為False的時候 >>> import numpy as np
>>> np.linspace(1, 10, 10)
array([ 1., 2., 3., 4., 5., 6., 7., 8., 9., 10.])
>>> np.linspace(1, 10, 10, endpoint = False)
array([ 1. , 1.9, 2.8, 3.7, 4.6, 5.5, 6.4, 7.3, 8.2, 9.1]) In [4]: np.linspace(1, 10, 10, endpoint = False, retstep= True)
Out[4]: (array([ 1. , 1.9, 2.8, 3.7, 4.6, 5.5, 6.4, 7.3, 8.2, 9.1]), 0.9)

官網的例子

Examples

>>>
>>> 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:

>>>
>>> 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()

技術分享

numpy.linspace使用詳解