矩阵各列MAX的值和指标

时间:2017-01-09 02:00:48

标签: python-3.x numpy

我知道:

id,value = max(enumerate(trans_p), key=operator.itemgetter(1))

我正在尝试找到与矩阵等效的东西,我正在寻找每列最大行索引 矩阵

所以函数可以包含任何矩阵,例如:

np.array([[0,0,1],[2,0,0],[5,0,0]])

并返回两个向量:找到最大值的行号向量,以及每列的最大值本身。我试图避免for循环!理想情况下,该函数返回两个值,如:

rowIdVect, maxVect = ...........

其中上面的示例矩阵的值为:

[2,0,0]  #rowIdVect
[5,0,1]  #maxVect

我可以分两步完成:

idVect = np.argmax( myMat , axis=0)
maxVect = np.max( trans_probs_mat, axis=0)

但是有一种语法可以同时执行吗? 注意:我正在尝试改善运行时间。

1 个答案:

答案 0 :(得分:0)

您可以使用索引查找相应的值:

In [201]: arr=np.array([[0,0,1],[2,0,0],[5,0,0]])
In [202]: idx=np.argmax(arr, axis=0)
In [203]: np.max(arr, axis=0)
Out[203]: array([5, 0, 1])
In [204]: arr[idx,np.arange(3)]
Out[204]: array([5, 0, 1])

这值得吗?我怀疑使用argmax和/或max是否是计算中的瓶颈。但请随时用实际数据进行时间测试。