【发布时间】:2019-12-29 02:32:06
【问题描述】:
我想创建两个矩阵。然后根据第一个矩阵中的数字改变第二个矩阵的数字。所以我生成了一个关于我的第一个矩阵的 If 语句,如果为真,这将导致我的第二个矩阵发生变化。但是,它会引起两个矩阵的变化吗?
我的代码与单个数字对象完美配合。仅当我尝试将其与矩阵一起应用时才会发生。
import numpy as np
n = 3
matr = np.zeros((n,n))
matr[0][0] = 1
matr2 = matr
print(matr)
[[1. 0. 0.]
[0. 0. 0.]
[0. 0. 0.]]
print(matr2)
[[1. 0. 0.]
[0. 0. 0.]
[0. 0. 0.]]
if matr[0][0] == 1:
matr2[0][0] = 9
print(matr)
[[9. 0. 0.]
[0. 0. 0.]
[0. 0. 0.]]
print(matr2)
[[9. 0. 0.]
[0. 0. 0.]
[0. 0. 0.]]
因为“matr”在我的 if 语句中没有作为主语出现,所以不应该改变它吗?
x = 1
y = x
if x == 1:
y = 9
print(x)
1
print(y)
9
【问题讨论】:
-
这 2 个变量只是对相同数据的 2 个引用,而不是 2 个不同的矩阵
-
你应该看看 NumPy 中的视图和副本。
标签: python numpy atom-editor