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没有复制,它只是赋值。另外,供参考:另外,供参考: