【问题标题】:Assign second element in a pair to a vector将一对中的第二个元素分配给向量
【发布时间】:2020-02-21 03:38:30
【问题描述】:

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

​

【问题讨论】:

    标签: python numpy vector assign


    【解决方案1】:

    您需要将pxvec和pyvec分配给srange的副本,否则您对pxvec所做的每一项更改也将同时对pyvec和srange进行(称为通过引用复制,如果你想看看这个)

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

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

    【讨论】:

      猜你喜欢
      • 2012-04-28
      • 1970-01-01
      • 2019-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多