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