weixin_45676627
夭零柒
2020-02-13 12:16
采纳率: 75%
浏览 2.2k

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条回答 默认 最新

  • huyu107
    阿蒙Amon 2020-02-13 12:33
    已采纳

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

    点赞 评论
  • qq_45404396
    il_持之以恒_li 2020-02-13 17:43

    改成这样就行了

    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)
    

    运行结果为:
    图片说明

    点赞 1 评论

相关推荐