首页 > 解决方案 > 在python中制作数组的副本

问题描述

我正在尝试在 python 中制作一个 numpy 数组的副本。然后我想更改新数组的一些值,但是不知何故这也会改变原来的?

为什么下面的代码不正确?

import numpy as np

a = np.array([1,1])
print("Array a:",a)

b = a
b[0] = a[0]*2
print("Array b after manipulation:", b)

print("Array a, after manipulating array b", a)

我可以使它工作的唯一方法是通过列表推导。

import numpy as np

a = np.array([1,1])
print("Array a:",a)

b = [x for x in a]
b[0] = a[0]*2
print("Array b after manipulation:", b)

print("Array a, after manipulating array b", a)

标签: pythonarrays

解决方案


Python 中的赋值语句不会复制对象,您需要使用copy()

b = a.copy()

推荐阅读