Недавно я применил это решение для усреднения каждых N строк матрицы. Хотя решение в целом работает, у меня были проблемы при применении к массиву 7x1. Я заметил, что проблема в использовании -=
оператора. Чтобы сделать небольшой пример:
import numpy as np
a = np.array([1,2,3])
b = np.copy(a)
a[1:] -= a[:-1]
b[1:] = b[1:] - b[:-1]
print a
print b
который выводит:
[1 1 2]
[1 1 1]
Итак, в случае массива a -= b
дает другой результат, чем a = a - b
. До сих пор я думал, что эти два способа абсолютно одинаковы. В чем разница?
Почему упомянутый мной метод суммирования каждых N строк в матрице работает, например, для матрицы 7x4, но не для массива 7x1?