Hành vi cố ý có hành vi numpy sau đây hay là lỗi?Tại sao Numpy xử lý + = b và a = a + b theo cách khác nhau
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 phiên bản: 2.7.2, numpy phiên bản: 1.6.1
Tôi hiểu rằng a là một số nguyên, tuy nhiên, kết quả mong đợi trong Python khi thêm phao và số nguyên là một phao, vì vậy đây là một "tính năng" bất ngờ " – Dhara
@Dhara: Tôi đồng ý rằng điều này có thể bất ngờ khi gặp phải lần đầu tiên . Nó cũng có thể hữu ích. Ở mức nào, tôi đã thêm một trích dẫn từ tài liệu giải thích hành vi. – NPE
Hoạt động tại chỗ có thể nhanh hơn nhiều (không phân bổ, sử dụng bộ nhớ cache tốt hơn) và nếu bạn có thể giữ tất cả các tham chiếu hiện có cho mảng này (nếu bạn có cấu trúc dữ liệu lông). Ngoài ra chúng cũng rất hữu ích cho các lập trình viên từ các nền C/C++/Fortran. –