我在Python 2.6.5中有一個奇怪的問題,使用Numpy。我分配一個numpy數組,然後將一個新變量等同於它。當我對新陣列執行任何操作時,原始值也會改變。這是爲什麼?請看下面的例子。請賜教,因爲我對Python相當陌生,而且一般編程。numpy數組賦值問題
-Sujan
>>> import numpy as np
>>> a = np.array([[1,2],[3,4]])
>>> b = a
>>> b
array([[1, 2],
[3, 4]])
>>> c = a
>>> c
array([[1, 2],
[3, 4]])
>>> c[:,1] = c[:,1] + 5
>>> c
array([[1, 7],
[3, 9]])
>>> b
array([[1, 7],
[3, 9]])
>>> a
array([[1, 7],
[3, 9]])
非常感謝你的出色描述。不用說,這解決了問題,但我真的很感謝你花時間來解釋事情。你開悟了我! – Sujan 2010-06-17 16:29:49
「Python不會複製整個數組,因爲如果它是一個大數組,它將需要很長時間。」 - 我會說它不太需要它花費的時間,更多的是如果你不以這種方式實現事情,你需要引入類似單獨的指針類型和那些複雜的東西。 – user2357112 2017-04-29 15:57:17