numpy 在一行中找到最大值并返回它的列索引
回答问题 我有一个名为 lda_trans 的 180295* 10 numpy 数组,行表示单词,列表示 10 个主题。 array([[0.01841009, 0.01840699, 0.35798764, ..., 0.38443892, 0.01841072, 0.12870054], [0.1 , 0.1 , 0.1 , ..., 0.1 , 0.1 , 0.1 ], [0.1 , 0.
·
回答问题
我有一个名为 lda_trans 的 180295* 10 numpy 数组,行表示单词,列表示 10 个主题。
array([[0.01841009, 0.01840699, 0.35798764, ..., 0.38443892, 0.01841072,
0.12870054],
[0.1 , 0.1 , 0.1 , ..., 0.1 , 0.1 ,
0.1 ],
[0.1 , 0.1 , 0.1 , ..., 0.1 , 0.1 ,
0.1 ],
...,
[0.0416964 , 0.62473603, 0.0416964 , ..., 0.04169395, 0.04169796,
0.04169232],
[0.03772096, 0.03775132, 0.66048403, ..., 0.03771698, 0.03772411,
0.0377139 ],
[0.03754747, 0.03756587, 0.66206395, ..., 0.03754399, 0.037551 ,
0.03753927]])
现在我想把每一行的最大值的列名转回,我只知道如何提取每一行的最大值,但我不知道如何获取列名。我知道在 pandas 中可以使用 idxmax。但是 Numpy 中是否有类似的功能?谢谢!
for i in range(180295):
lda_trans_max.append(np.max(lda_trans[i]))
Answers
使用np.argmax
。
演示:
>>> a
array([[0, 1, 2, 3, 4],
[5, 6, 7, 8, 9]])
>>> np.argmax(a, axis=1)
array([4, 4])
您在这里得到[4, 4]
,因为在两行中,具有最大值的元素都位于4
位置。
另一个演示:
>>> a
array([[5, 9, 7, 6, 8],
[8, 7, 7, 6, 9]])
>>> np.argmax(a, axis=1)
array([1, 4])
更多推荐
已为社区贡献126483条内容
所有评论(0)