【发布时间】:2022-01-20 21:32:23
【问题描述】:
我有一个二维的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 中行索引的列表l,q 中的每一行都应该添加到该列表中. 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?
【问题讨论】:
标签: python arrays numpy indexing