Numpy: вывод от добавления подмассива к себе - PullRequest
0 голосов
/ 16 января 2019

Интересно, какова логика этого обалденного вывода.В основном я пытаюсь добавить подмножество массива 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, и он возвращает ожидаемый результат.

1 Ответ

0 голосов
/ 16 января 2019

Используя ваш код, я получаю ожидаемый результат:

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.])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...