N 个 argmax 列在 M 行的最大值中?

问题描述

在每个指定行中选择三个最大值后,获得最大值的两列的最佳/最短方法是什么

  [[0.,0.,0.  ],[0.19,[0.,0.29,[0.42,0.13],[0.12,0.12,[0.13,0.1,0.26],[0.25,0.48],0.21]])

所以第 3、4、5 行的三个最大值是

    In [132]: np.max(ary[[3,4,5],:],axis=1)                                                                                                                                    
    Out[132]: array([0.42,0.13,0.26])

现在我必须选择两个最大值的列:

  In [133]: np.argmax(ary[[3,axis=1)                                                                                                                                 
  Out[133]: array([0,2,2])

在这种情况下是 element[0]=0 和 element[2]=2,忽略 element[1]=2

有没有更快的方法来获得 max-of-max 的 col-ixs ?

似乎没有直接的 argmax-max 函数,您必须始终执行 max+argmax(存储中间结果)并再次执行 argmax


这是正确的:

 np.argsort(np.max(ary[[3,axis=1))[::-1][:2]

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)