Python 如何在保留原始阵列的同时获得另一个阵列的修改?

Python 如何在保留原始阵列的同时获得另一个阵列的修改?,python,numpy,Python,Numpy,我想创建两个数组a和b,然后创建一个数组c,该数组与a相同,但第一列从b中提取。最后应该有3个不同的阵列 如下所示: a = np.array([[1, 1]]) b = np.array([[0, 0]]) c = b c[:, 0] = a[:, 0] print(a, b, c) 应确保产出: [[1 1]] [[0 0]] [[1 0]] 但我得到了: [[1 1]] [[1 0]] [[1 0]] 由于某些原因,修改c也会修改a您可以使用.copy()执行对象的复制,如下所示

我想创建两个数组
a
b
,然后创建一个数组
c
,该数组与
a
相同,但第一列从
b
中提取。最后应该有3个不同的阵列

如下所示:

a = np.array([[1, 1]])
b = np.array([[0, 0]])

c = b
c[:, 0] = a[:, 0]

print(a, b, c)
应确保产出:

[[1 1]] [[0 0]] [[1 0]]
但我得到了:

[[1 1]] [[1 0]] [[1 0]]

由于某些原因,修改
c
也会修改
a

您可以使用
.copy()
执行对象的复制,如下所示:

a = np.array([[1, 1]])
b = np.array([[0, 0]])

c = b.copy() # or b.deepcopy()
从文件中:

Python中的赋值语句不复制对象,而是创建 目标和对象之间的绑定。对于 易变的或包含易变项的,有时需要一个副本以便 可以更改一个副本而不更改另一个副本。[副本]模块提供 一般的浅拷贝和深拷贝操作


链接:

c=b.copy()
-然后使用
c
c=b
不创建副本。阅读以下“出于某种原因,修改c也会修改a”,因为
c
b
是指同一对象的名称。