[英]Apply numpy.convolve to 1-dim vectors (two-dimensional arrays with singleton dimension)
我是numpy的新手。
我從numpy.array形狀(R,1)和(R,)之間的差異中學到了rank-1數組和1-dim向量之間的區別
還告訴我在可能的情況下將vector用於機器學習任務,而不是rank1數組。 (來自https://www.coursera.org/learn/neural-networks-deep-learning/lecture/87MUx/a-note-on-python-numpy-vectors在4:35)
我正在嘗試使用numpy.convolve,但我看不到它需要1維矢量。
有沒有一種方法可以將1-dim向量傳遞給numpy.convolve
或應該使用(N,)形狀數組?
numpy.convolve
的文檔將輸入描述為“一維數組”。
NumPy中沒有單獨的“向量”,只有一個一維數組。 除第一維以外的所有維均為1的高維數組通常也可以使用。
我認為您正處於嘗試和觀察的階段。 它應該按照您期望的方式工作。
numpy.convolve
的輸入數組必須是一維的,形狀為(N,)
。
要對具有多個維度的數組進行卷積,請使用scipy.signal.convolve
from scipy import signal
a = np.random.normal(size=(10, 1))
b = np.random.normal(size=(5, 1))
signal.convolve(a, b)
我會嚴重質疑該建議的智慧(它是否來自使用Matlab而不是使用NumPy的人?),但是如果您必須在NumPy中遵循該建議,則先對數組進行squeeze()
運算,然后在卷積之前去除單例維數,然后reshape
為恢復該尺寸
a = np.random.normal(size=(10, 1))
b = np.random.normal(size=(5, 1))
c = np.convolve(a.squeeze(), b.squeeze()).reshape(-1, 1)
對於NumPy而言,這似乎是浪費時間,但誰知道,遵守機器學習法的好處也許是值得的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.