Недавно я применил это решение для усреднения каждых 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?