您好,登錄后才能下訂單哦!
這篇“numpy的linspace()函數如何使用”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“numpy的linspace()函數如何使用”文章吧。
作為序列生成器, numpy.linspace()
函數用于在線性空間中以均勻步長生成數字序列。
Numpy通常可以使用numpy.arange()
生成序列,但是當我們使用浮點參數時,可能會導致精度損失,這可能會導致不可預測的輸出。為了避免由于浮點精度而造成的任何精度損失,numpy在numpy.linspace()
為我們提供了一個單獨的序列生成器,如果您已經知道所需的元素數,則這是首選。 但是通常使用帶有適當參數的linspace()
和arange()
可以得到相同的輸出,因此可以為同一任務選擇兩者。
例如,以下代碼使用numpy.linspace()
在0到10之間繪制2個線性序列,以顯示該序列生成的均勻性。
import numpy as np
import matplotlib.pyplot as plt
y = np.zeros(5)
x1 = np.linspace(0, 10, 5)
x2 = np.linspace(0, 10, 5)
plt.plot(x1, y, 'o')
plt.plot(x2, y + 0.5, 'o')
plt.ylim([-0.5, 1])
plt.show()
語法:
格式: array = numpy.linspace(start, end, num=num_points)
將在start
和end
之間生成一個統一的序列,共有num_points
個元素。
start -> Starting point (included) of the rangestart ->范圍的起點(包括)
end -> Endpoint (included) of the rangeend ->范圍的端點(包括)
num -> Total number of points in the sequencenum >序列中的總點數
讓我們通過幾個示例來理解這一點:
import numpy as np
a = np.linspace(0.02, 2, 10)
print('Linear Sequence from 0.02 to 2:', a)
print('Length:', len(a))
輸出
Linear Sequence from 0.02 to 2: [0.02 0.24 0.46 0.68 0.9 1.12 1.34 1.56 1.78 2. ]
Length: 10
上面的代碼段生成了0.02到2之間的均勻序列,其中包含10個元素。
如果您不想在序列計算中包括最后一點,則可以使用另一個關鍵字參數endpoint
,可以將其設置為False
。 (默認為True
)
import numpy as np
a = np.linspace(0.02, 2, 10, endpoint=False)
print('Linear Sequence from 0.02 to 2:', a)
print('Length:', len(a))
輸出
Linear Sequence from 0.02 to 2: [0.02 0.218 0.416 0.614 0.812 1.01 1.208 1.406 1.604 1.802]
Length: 10
如您所見,最后一點(2)沒有包含在序列中,因此步長也不同,這將產生一個完全不同的序列。
這是一個布爾型可選參數(如果已指定),還將返回步長以及序列數組,從而產生一個元組作為輸出
import numpy as np
a = np.linspace(0.02, 2, 10, retstep=True)
print('Linear Sequence from 0.02 to 2:', a)
print('Length:', len(a))
輸出
Linear Sequence from 0.02 to 2: (array([0.02, 0.24, 0.46, 0.68, 0.9 , 1.12, 1.34, 1.56, 1.78, 2. ]), 0.22)
Length: 2
由于輸出是元組,因此它的長度是2,而不是10!
這將在結果中設置軸以存儲樣本。 僅當開始和端點為數組數據類型時才使用它。
默認情況下( axis=0
),采樣將沿著在開始處插入的新軸進行。 我們可以使用axis=-1
來獲得末端的軸。
import numpy as np
p = np.array([[1, 2], [3, 4]])
q = np.array([[5, 6], [7, 8]])
r = np.linspace(p, q, 3, axis=0)
print(r)
s = np.linspace(p, q, 3, axis=1)
print(s)
輸出
array([[[1., 2.],
[3., 4.]],
[[3., 4.],
[5., 6.]],
[[5., 6.],
[7., 8.]]])
array([[[1., 2.],
[3., 4.],
[5., 6.]],
[[3., 4.],
[5., 6.],
[7., 8.]]])
在第一種情況下,由于axis = 0
,我們從第一個軸獲取序列限制。
在這里,限制是子數組對[1, 2] and [5,6]
以及[3, 4] and [7,8]
,它們取自p
和q
的第一軸。 現在,我們比較結果對中的相應元素以生成序列。
因此,第一行的順序為[[1 to 5], [2 to 6]]
,第二行的順序為[[1 to 5], [2 to 6]]
[[3 to 7], [4 to 8]]
,對其進行評估并組合形成[ [[1, 2], [3, 4]], [[3, 4], [5, 6]], [[5, 6], [7,8]] ]
。
第二種情況將在axis=1
或列中插入新元素。 因此,新軸將通過列序列生成。 而不是行序列。
考慮序列[1, 2] to [5, 7]
和[3, 4] to [7, 8]
并將其插入到結果的列中,得到[[[1, 2], [3, 4], [5, 6]], [[3, 4], [5, 6], [7, 8]]]
。
以上就是關于“numpy的linspace()函數如何使用”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。