今天下午我发现了一个无法理解的现象。我想交换ndarray中的两行,如下代码所示。
import numpy as np
a = np.random.randint(0, 40, size=(4, 4))
a = a + a.T
b = a.copy()
print(a)
b[1], b[3] = b[3], b[1]
print(b)
Run Code Online (Sandbox Code Playgroud)
但是一个意想不到的结果来了。打印结果如下
[[60 64 12 33]
[64 30 29 60]
[12 29 40 64]
[33 60 64 76]]
[[60 64 12 33]
[33 60 64 76]
[12 29 40 64]
[33 60 64 76]]
Run Code Online (Sandbox Code Playgroud)
我知道 a,b = b,a 是有效的。我想知道它们之间有什么区别?你能从记忆的角度谈谈这个问题吗?提前谢谢你!