给出一个特定形状(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
是数组的名称。
提出的解决方案有效,但我不敢相信没有更奇妙的Python方式可以做到这一点。
答案 0 :(得分:4)
答案 1 :(得分:0)
您可以使用argmax函数:
row = acc_m[np.argmax(acc_m[:, 1])]
print(row)
[0.21212121 0.795 ]