2014-01-09 24 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,:]