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
是指同一对象的名称。