Является ли следующее поведение numpy преднамеренным или это ошибка?Почему Numpy рассматривает a + = b и a = a + b иначе
from numpy import *
a = arange(5)
a = a+2.3
print 'a = ', a
# Output: a = 2.3, 3.3, 4.3, 5.3, 6.3
a = arange(5)
a += 2.3
print 'a = ', a
# Output: a = 2, 3, 4, 5, 6
версия Python: 2.7.2, Numpy версия: 1.6.1
Я понимаю, что a является целым числом, однако ожидаемый результат в Python добавления float и integers является поплавком, так что это неожиданная «функция» – Dhara
@Dhara: Я согласен, что это может быть неожиданно, когда впервые встретились , Это также может быть полезно. Во всяком случае, я добавил цитату из документации, которая объясняет поведение. – NPE
Операции на месте могут быть намного быстрее (без распределения, лучшего использования кеша), и если вы можете сохранить все существующие ссылки на этот массив (если у вас есть волосатые структуры данных). Также они очень полезны для программистов из фонов C/C++/Fortran. –