以下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中添加浮点数和整数的预期结果是浮点数,所以这是一个意外的“特征” – Dhara
@Dhara:我同意当遇到第一次遇到这种情况。它也可以是有用的。无论如何,我已经从解释行为的文档中添加了一段引文。 – NPE
就地操作可以更快(没有分配,更好的缓存利用率),并且如果您可以保留对此数组的所有现有引用(如果您有多毛的数据结构)。这些对于C/C++/Fortran背景的程序员也非常有用。 –