【发布时间】:2021-06-30 21:49:48
【问题描述】:
我有一个矩阵
A = np.zeros((n,n))
说 n=4。我还有一个矩阵
B = np.array(
[7, 3, 5, 4],
[4, 3, 2, 1],
[6, 7, 4, 5],
[1, 2, 3, 4]
)
首先我需要B的每一行中最小k个元素的索引(例如2),在这种情况下是
np.array(
[1, 3],
[3, 2],
[2, 3],
[0, 1]
)
我可以这样做 np.argsort 但这最终会对整个数组进行排序,np.argpartition 可以对前 k 个元素进行排序,但我需要一种获取索引的方法。最后,我想在给出矩阵的索引处将B 的最小 k 值插入到A 中
A = np.array(
[0, 3, 0, 4],
[0, 0, 2, 1],
[0, 0, 4, 5],
[1, 2, 0, 0]
)
有什么可能的方法?
【问题讨论】:
-
它回答了关于获取 k 个最小值的索引的问题的第一部分,我需要最后一部分将
B中这些索引处的值插入A。 -
你试过
A[indices] = B[indices]吗?我不确定,但可能就这么简单。