Как в этом случае работает распределение памяти в python? - PullRequest
0 голосов
/ 09 мая 2018

Предположим, у меня очень большой массив numpy a, и я хочу добавить числовое значение 1 к каждому элементу массива.Из того, что я прочитал до сих пор:

a += 1 

- это хороший способ сделать это, а не:

a = a + 1

, поскольку во втором случае создается новый массив a вдругой слот памяти, в то время как в первом случае старый массив эффективно заменяется в том же слоте памяти.

Предположим, что вместо этого я хочу сделать следующее:

a = 1-a

Что будетэффективный способ памяти?

Ответы [ 2 ]

0 голосов
/ 09 мая 2018
numpy.subtract(1, a, out=a)

Использование subtract ufunc напрямую дает вам больше контроля, чем оператор -. Здесь мы используем параметр out, чтобы поместить результаты вычитания обратно в a.

0 голосов
/ 09 мая 2018

Вы можете сделать это на месте так:

a *= -1
a += 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...