在 python 中制作数组的副本

Mat*_*ias 7 python arrays

我正在尝试在 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)
Run Code Online (Sandbox Code Playgroud)

我可以让它发挥作用的唯一方法是通过列表理解。

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)
Run Code Online (Sandbox Code Playgroud)

jle*_*eur 7

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

b = a.copy()
Run Code Online (Sandbox Code Playgroud)