Интересно, какова логика этого обалденного вывода.В основном я пытаюсь добавить подмножество массива numpy к себе с помощью нарезки следующим кодом.
x = np.zeros((10,)) x[:3] += 1 print x x[2:] += x[:-2] print x
Оригинал x:
[ 1. 1. 1. 0. 0. 0. 0. 0. 0. 0.]
Ожидаемый результат:
[ 1. 1. 2. 1. 1. 0. 0. 0. 0. 0.]
Однако он возвращает мне следующий результат, который является совершенно неожиданным.Кто-нибудь знает, что здесь за логика?
Фактический вывод:
[ 1. 1. 2. 1. 2. 1. 2. 1. 2. 1.]
Редактировать: Проблема кажется специфичной для numpy 1.11.3.Попробовал еще раз в среде с numpy 1.15.4, и он возвращает ожидаемый результат.
Используя ваш код, я получаю ожидаемый результат:
x = np.zeros((10,)) x[:3] += 1 x array([1., 1., 1., 0., 0., 0., 0., 0., 0., 0.]) x[2:] += x[:-2] x array([1., 1., 2., 1., 1., 0., 0., 0., 0., 0.])