我遇到了IPython的问题。我似乎无法在线找到任何相关问题(可能是因为描述不充分)。
以下是使用Numpy作为np:
的IPython会话的示例x1 = np.array([1.0, 1.0, 1.0, 1.0])
x2 = x1
x2[2] = x2[2] + 0.01
现在,如果我在会话中查看x1
和x2
中存储的内容,我看到两者都是一样的:
array([1. , 1. , 1.01, 1. ])
为什么x1
中的值也会在此处更新?
答案 0 :(得分:0)
因为参考副本。你需要做的不仅仅是使用=即浅拷贝。
这样做:
x2 = numpy.copy(x1)
而不是使用=符号。这与C ++ / C浅层和深层复制原理是一样的。