1
我有一個(NxK)數組,我需要高效地計算順序行對之間的差異,從而生成一個(N-1 x K)數組(即第一列中的元素將被計算爲A [1 + 1,0] -A [I,0])。有沒有可能做到這一點,而不是一個循環(這是顯而易見的),但在一個更優雅的矢量化的方式?謝謝。具有numpy的進程順序行對
我有一個(NxK)數組,我需要高效地計算順序行對之間的差異,從而生成一個(N-1 x K)數組(即第一列中的元素將被計算爲A [1 + 1,0] -A [I,0])。有沒有可能做到這一點,而不是一個循環(這是顯而易見的),但在一個更優雅的矢量化的方式?謝謝。具有numpy的進程順序行對
numpy.diff
正是這麼做的,其參數axis
:
>>> a = np.array([[1,2,3],[4,5,6],[7,8,9]])
>>> np.diff(a, axis = 0)
array([[3, 3, 3],
[3, 3, 3]])
>>> np.diff(a, axis=1)
array([[1, 1],
[1, 1],
[1, 1]])
或使用切片:
a[1:,:] - a[:-1,:]
感謝。我知道這將是簡單和方便,我錯過了文檔:-) – dpq