如何从numpy的数组中选择特定列的值最大的行?

2024-04-25 05:41:47 发布

您现在位置:Python中文网/ 问答频道 /正文

给定一个特定形状(m,n)的数组,我想选择一个特定列值最大的整行(或找到它的索引)

考虑下面的数组。我想找出第二列的值最大的那一行。第二列的最大值是0.795,因此我应该返回[0.21212121, 0.795]

array([[-3.        ,  0.5       ],
       [-2.93939394,  0.5       ],
       [-2.87878788,  0.5       ],
       [ 0.21212121,  0.795     ],
       [ 0.27272727,  0.785     ],
       [ 0.33333333,  0.785     ],
       [ 0.39393939,  0.77      ],
       [ 2.93939394,  0.5       ],
       [ 3.        ,  0.5       ]])

我通过以下方式达到了预期的效果:

best_result = np.max(acc_m[:, 1])
row_with_best_res = acc_m[acc_m[:, 1] == best_result]

其中acc_m是数组的名称

所提出的解决方案是可行的,但我不敢相信没有比这更奇特、更疯狂的方法


Tags: 名称withnp方式res数组resultarray
2条回答

您可以使用argmax函数:

row = acc_m[np.argmax(acc_m[:, 1])]
print(row)
[0.21212121 0.795     ]

使用^{}

对你来说

row_with_best_res = acc_m[acc_m[:, 1].argmax()]

相关问题 更多 >