如何获取二维Numpy数组中各列最大值所在的行号?
如何获取二维Numpy数组中各列最大值所在的行号?
嗨,这问题太典型了,Numpy里正好有个“魔法函数”能直接搞定——np.argmax()!
先看你的示例数组:
import numpy as np a = np.array([[2, 3, 1, 9], [0, 5, 4, 7], [2, 4, 6, 8]])
你要的是每一列最大值对应的行号,只需要给np.argmax()指定axis=0参数就行:
row_indices = np.argmax(a, axis=0) print(row_indices)
运行结果就是:
array([0, 1, 2, 0])
刚好和你预期的结果完全一致!
这里再补充个小细节帮你理解:
axis=0表示沿着列的方向计算,也就是逐列找最大值的行索引- 如果以后你需要找每行最大值的列索引,把
axis改成1就行
是不是超省心?Numpy的内置函数不仅代码简洁,处理大数组时的效率也比手动写循环高太多啦~
备注:内容来源于stack exchange,提问作者Paul Jurczak
相关产品推荐
相关产品推荐

