Нещодавно я застосував це рішення для усереднення кожних 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?