Tôi cần một lời giải thích tốt (tham khảo) để giải thích NumPy cắt trong vòng (for) vòng lặp. Tôi có ba trường hợp.Cắt một mảng NumPy trong một vòng
def example1(array):
for row in array:
row = row + 1
return array
def example2(array):
for row in array:
row += 1
return array
def example3(array):
for row in array:
row[:] = row + 1
return array
Một trường hợp đơn giản:
ex1 = np.arange(9).reshape(3, 3)
ex2 = ex1.copy()
ex3 = ex1.copy()
lợi nhuận:
>>> example1(ex1)
array([[0, 1, 2],
[3, 4, 5],
[6, 7, 8]])
>>> example2(ex2)
array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
>>> example3(ex3)
array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
Có thể thấy rằng kết quả đầu tiên khác với thứ hai và thứ ba.
Câu hỏi liên quan, hy vọng điều này sẽ giúp http://stackoverflow.com/questions/15376509/when-is-i-x-different-from-i-i-x-in-python/15376520#15376520 – Thiru