我犯了一个简单的错误,还是一个错误?试图在Python Numpy中将一对的第一个和第二个元素分配给单独的向量,但是在所有情况下,第二个元素都被分配给两个向量。
所需的输出:sol[0]
与pxvec[i]
相同。
srange = np.linspace(0, 0.7, 10)
pxvec = srange
pyvec = srange
pindex = 0
for i in srange:
sol=[i,i+1]
print(sol[0],sol[1])
pxvec[pindex]=sol[0]
pyvec[pindex]=sol[1]
print(pxvec[pindex],pyvec[pindex])
pindex=pindex+1
我得到的输出:
0.0 1.0
1.0 1.0
0.07777777777777778 1.0777777777777777
1.0777777777777777 1.0777777777777777
0.15555555555555556 1.1555555555555554
1.1555555555555554 1.1555555555555554
0.23333333333333334 1.2333333333333334
1.2333333333333334 1.2333333333333334
0.3111111111111111 1.3111111111111111
1.3111111111111111 1.3111111111111111
0.3888888888888889 1.3888888888888888
1.3888888888888888 1.3888888888888888
0.4666666666666667 1.4666666666666668
1.4666666666666668 1.4666666666666668
0.5444444444444445 1.5444444444444445
1.5444444444444445 1.5444444444444445
0.6222222222222222 1.6222222222222222
1.6222222222222222 1.6222222222222222
0.7 1.7
1.7 1.7
答案 0 :(得分:2)
您需要将pxvec
和pyvec
分配给srange
的副本,否则对pxvec
所做的每项更改也将同时对pyvec
和srange
(如果您要查找的话,称为引用复制)
srange = np.linspace(0, 0.7, 10)
pxvec = srange.copy()
pyvec = srange.copy()
然后您可以继续提供的代码