IPython变量赋值

时间:2015-01-08 21:57:30

标签: python numpy

我遇到了IPython的问题。我似乎无法在线找到任何相关问题(可能是因为描述不充分)。

以下是使用Numpy作为np:

的IPython会话的示例
x1 = np.array([1.0, 1.0, 1.0, 1.0])
x2 = x1
x2[2] = x2[2] + 0.01

现在,如果我在会话中查看x1x2中存储的内容,我看到两者都是一样的:

array([1. , 1. , 1.01, 1. ])

为什么x1中的值也会在此处更新?

1 个答案:

答案 0 :(得分:0)

因为参考副本。你需要做的不仅仅是使用=即浅拷贝。

这样做:

 x2 = numpy.copy(x1)

而不是使用=符号。这与C ++ / C浅层和深层复制原理是一样的。