【发布时间】:2017-07-06 11:06:56
【问题描述】:
我尝试了以下方法:
p=np.array([[1,1,1],[2,2,2],[3,3,3]])
p[0,:] = p[1,:]
y = p[1,:]
print(p)
p[1,1] = 4
print(p)
print(y)
如您所见,输出为:
[[2 2 2]
[2 2 2]
[3 3 3]]
[[2 2 2]
[2 4 2]
[3 3 3]]
[2 4 2]
所以当我将p 的第二行分配给y 时,它是通过引用传递的。当我将p 的第二行分配给p 的第一行时,它是通过副本传递的。为什么会这样?
我期望的输出是:
[[2 2 2]
[2 2 2]
[3 3 3]]
[[2 4 2]
[2 4 2]
[3 3 3]]
[2 4 2]
【问题讨论】:
标签: python numpy pass-by-reference