gpt4 book ai didi

python - 如何使用特定的列索引对 numpy 二维数组行进行降序或升序排序

转载 作者:太空宇宙 更新时间:2023-11-04 03:08:26 25 4
gpt4 key购买 nike

假设我有一个像这样的 numpy 二维数组:

a = np.array([[3,6,7],[1,9,4],[ 3,7,8],[2,5,10]])
a
# array([[ 3, 6, 7],
# [ 1, 9, 4],
# [ 3, 7, 8],
# [ 2, 5, 10]])

我需要根据第一列降序排列并根据第二列升序排列行以获得以下结果:

array([[ 3,  6,  7],
[ 3, 7, 8],
[ 2, 5, 10],
[ 1, 9, 4]])

在 Matlab 中使用 sortrows(my_matrix,[-1 2]) 很简单,其中 -1 表示第一列降序,2 表示第二列升序。

不知道numpy中有没有这样的函数

最佳答案

以下是使用 numpy_indexed 的方法包裹:

import numpy_indexed as npi
print(a[npi.argsort((a[:,1], -a[:,0]))])

关于python - 如何使用特定的列索引对 numpy 二维数组行进行降序或升序排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38815776/

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