gpt4 book ai didi

python - 有效地对 numpy 矩阵的行进行排序

转载 作者:行者123 更新时间:2023-11-30 22:55:07 24 4
gpt4 key购买 nike

例如,我有一个 numpy 二维实数数组

A=
np.array(
[[0.1, 0.01, 0.4, 0.9],
[0.0005, -0.2, -0.1, 0.6],
[-0.3, -0.5, 0.2, 0.9]])

以及与 A.shape[1] 大小相同的索引向量:idx=[5, 2, 3, 9]

对于 A 的每一行,我需要将条目从高到低排序,并提供 idx 中的相应元素。例如,在上述情况下,答案应该是:

np.array([[9, 3, 5, 2], [9, 5, 3, 2], [9, 3, 5, 2]])

A 中可能有数百万行。最有效的方法是什么?

最佳答案

您可以使用np.argsort()以排序模式获取数组的索引,并将其反转以获取递减模式的索引,然后使用简单的索引来获取预期的输出:

>>> A.argsort()
array([[1, 0, 2, 3],
[1, 2, 0, 3],
[1, 0, 2, 3]])
>>> idx=np.array([5, 2, 3, 9])

>>> indices = A.argsort()[:,::-1]
>>>
>>> idx[indices]
array([[9, 3, 5, 2],
[9, 5, 3, 2],
[9, 3, 5, 2]])

关于python - 有效地对 numpy 矩阵的行进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37510916/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com