numpy.linspace使用詳解


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

../../_images/numpy-linspace-1.png


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM