Python的矩阵赋值问题

定义矩阵A后,给变量t赋值为A矩阵的第二行向量,但是当改变原本矩阵第二行向量,变量t也发生改变。请问如果修改代码可以让t的值不被覆盖呢?

谢谢!!!

A = np.array([1,1,3,2,3,0]).reshape(2,3)
index = 1
j = 0
t = A[index,:]
print(t)
A[index,:] = A[j,:]
print(t)

2个回答

你的赋值只是一个引用的赋值,所以t会随着A的改变而改变。
不想受其影响,可以使用深度拷贝,将A的第二向量的值赋予t。

改成这样就行了

import numpy as np


A = np.array([1,1,3,2,3,0]).reshape(2,3)
index = 1
j = 0
t = A[index,:].copy()
print(t)
A[index,:] = A[j,:]
print(t)

运行结果为:
图片说明

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问