2014-01-09 3 views
1

У меня есть массив (NxK), и мне нужно эффективно вычислять различия между последовательными парами строк, создавая массив (N-1 x K) (т.е. элементы в его первом столбце будут вычисляться как А [я] + 1,0 [-я, 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,:] 
Смежные вопросы