Python 为什么我的numpy矩阵在分配之前会得到更新?

Python 为什么我的numpy矩阵在分配之前会得到更新?,python,python-3.x,numpy,Python,Python 3.x,Numpy,这是我的密码 import numpy as np v = np.zeros(4) backup = np.zeros(4) for i in range(3): backup = v v[0] = 1 print(backup) 我的输出是: [1. 0. 0. 0.] [1. 0. 0. 0.] [1. 0. 0. 0.] 但我希望: [0. 0. 0. 0.] [1. 0. 0. 0.] [1. 0. 0. 0.] 为什么在分配任务之前要更新备份矩阵?您并不是真正

这是我的密码

import numpy as np
v = np.zeros(4)
backup = np.zeros(4)

for i in range(3):
   backup = v
   v[0] = 1
   print(backup)
我的输出是:

[1. 0. 0. 0.]
[1. 0. 0. 0.]
[1. 0. 0. 0.]
但我希望:

[0. 0. 0. 0.]
[1. 0. 0. 0.]
[1. 0. 0. 0.]
为什么在分配任务之前要更新备份矩阵?

您并不是真正在做备份:您只是在做另一个参考

复制解决了这一问题:

import numpy as np
v = np.zeros(4)
backup = np.zeros(4)

for i in range(3):
    backup = v.copy()
    v[0] = 1
    print(backup)

[0. 0. 0. 0.]
[1. 0. 0. 0.]
[1. 0. 0. 0.]
你并不是在做备份:你只是在做另一个参考

复制解决了这一问题:

import numpy as np
v = np.zeros(4)
backup = np.zeros(4)

for i in range(3):
    backup = v.copy()
    v[0] = 1
    print(backup)

[0. 0. 0. 0.]
[1. 0. 0. 0.]
[1. 0. 0. 0.]

我认为backup=v没有复制,它只是赋值。

我认为backup=v没有复制,它只是赋值。

另外,供参考:另外,供参考: