将一对中的第二个元素分配给向量

Assign second element in a pair to a vector

我是犯了一些简单的错误还是这是一个错误?尝试将一对中的第一个和第二个元素分配给 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

您需要将 pxvecpyvec 分配给 srange 的副本,否则您对 pxvec 所做的每项更改也会对 pyvec 进行]和srange(如果您想查找它,它被称为通过引用复制)

srange = np.linspace(0, 0.7, 10)
pxvec = srange.copy()
pyvec = srange.copy()

然后您可以继续使用您提供的代码