Aşağıdaki sayısal davranışlar kasıtlı mıdır, yoksa bir hata mıdır?Neden Numpy a + = b ve a = a + b farklı davranır
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 sürümü: 2.7.2, Numpy sürümü: kasıtlı var 1.6.1
A'nın bir tamsayı olduğunu anlıyorum, ancak Python'da bir kayan nokta ekleme ve tamsayıların bir kayan olması beklenen sonuçtur, bu yüzden beklenmedik bir "özellik" – Dhara
@ Dhara: İlk karşılaşıldığında bunun beklenmedik olabileceğini kabul ediyorum . Ayrıca yararlı olabilir. Her halükarda, davranışları açıklayan belgelerden bir alıntı ekledim. – NPE
Yerinde işlemler çok daha hızlı olabilir (hiçbir tahsisat, daha iyi önbellek kullanımı) ve mevcut dizinin tümünü bu dizide tutabilirsiniz (kıllı veri yapılarınız varsa). Ayrıca bunlar C/C++/Fortran arka plan programcıları için çok kullanışlıdır. –