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