簡體   English   中英

使用索引同時從 numpy 二維數組的行中減去多個值

[英]Subtract multiple values from row of numpy 2D-array at the same time, using indices

我有一個二維numpy數組f ,例如:

f = np.array(
   [
    [0,0,0],
    [0,0,0],
    [0,0,0]
   ]
)

和另一個二維數組q ,例如:

q = np.array(
   [
    [1,1,1],
    [1,1,1],
    [2,2,2],
    [3,3,3]
   ]
)

q中的每一行都應該添加到f中的某一行,而我只有一個f中行的索引列表lq中的每一行都應該添加到該列表中。 l的長度等於q中的行數。 例如:

l = [0,2,0,0]

這意味着我想做這樣的事情:

f[l] += q

應該將f轉換為:

[
 [6,6,6],
 [0,0,0],
 [1,1,1]
]

即我期待它這樣做:

f[0] += q[0]
f[2] += q[1]
f[0] += q[2]
f[0] += q[3]

但是當某些索引在l中重復時(在本例中為索引0 ),它只會添加q中與l中最后一個重復索引相對應的行。 所以相反,我得到:

[
 [3,3,3],
 [0,0,0],
 [1,1,1]
]

這意味着它正在這樣做:

f[2] += q[1]
f[0] += q[3]

如何將q中的多行添加到f中的同一行,僅具有列表l

嘗試np.add.atnp.add.at(f, l, q)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM