使用numpy处理顺序行对

时间:2014-01-09 14:19:32

标签: numpy

我有一个(NxK)数组,我需要有效地计算连续行对之间的差异,产生一个(N-1 x K)数组(即第一列中的元素将被计算为A [i + 1, 0] -A [I,0])。是否有可能不使用循环(这是显而易见的),但以更优雅的矢量化方式?谢谢。

2 个答案:

答案 0 :(得分: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]])

答案 1 :(得分:1)

或使用切片:

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