我想创建两个矩阵。然后,根据第一矩阵中的数字更改第二矩阵号。因此,我生成了有关第一个矩阵的If语句,如果为true,这将导致第二个矩阵发生变化。但是,它会引起两个矩阵的变化吗?
我的代码与单个数字对象完美配合。仅当我尝试将其应用于矩阵时才会发生。
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.]]
因为在我的if语句中“ matr”没有作为主题出现,所以不应该对它进行更改吗?
x = 1
y = x
if x == 1:
y = 9
print(x)
1
print(y)
9
答案 0 :(得分:0)
那两个变量只是对同一矩阵的两个引用,而不是两个不同的矩阵; matr2 = matr
只是创建了对同一矩阵的新引用。
语句matr2[0][0] = 9
修改了示例中存在的唯一矩阵,它与使用matr[0][0] = 9
完全相同。