2014-01-09 25 views
1

我有一個(NxK)數組,我需要高效地計算順序行對之間的差異,從而生成一個(N-1 x K)數組(即第一列中的元素將被計算爲A [1 + 1,0] -A [I,0])。有沒有可能做到這一點,而不是一個循環(這是顯而易見的),但在一個更優雅的矢量化的方式?謝謝。具有numpy的進程順序行對

回答

1

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]]) 
+0

感謝。我知道這將是簡單和方便,我錯過了文檔:-) – dpq

1

或使用切片:

a[1:,:] - a[:-1,:]