以下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背景的程序員也非常有用。 –