python – 查找numpy数组中每行的最大值以及相同大小的另一个数
发布时间:2020-12-16 23:28:25 所属栏目:Python 来源:网络整理
导读:我是 Python的新手,仍然不能称自己为Python程序员.说到这一点,如果我的问题没有任何意义,请耐心等待. 题: 我有两个相同大小的numpy数组,例如A和B,其中A.shape等于B.shape,它们都等于(5,1000),我想找到A中每行的最大值和B中相应的元素.例如,如果在第四行A,最
我是
Python的新手,仍然不能称自己为Python程序员.说到这一点,如果我的问题没有任何意义,请耐心等待.
题: 我有两个相同大小的numpy数组,例如A和B,其中A.shape等于B.shape,它们都等于(5,1000),我想找到A中每行的最大值和B中相应的元素.例如,如果在第四行A,最大元素索引是104然后我想在数组B中找到第四行的第104个元素,而其余行则相同. 我知道我可以通过循环遍历行来实现它,但我想知道是否有更优雅的方式.例如,如果我在MATLAB中这样做,我会写下面的代码: B(bsxfun(@eq,A,max(A,[],2))) 任何指导我通过正确方向的帮助将非常感激. 解决方法
这是做同样事情的numpy成语:
b[np.arange(len(a)),np.argmax(a,axis=1)] 例如: >>> a = np.array([ [1,2,0],[2,1,[0,2] ]) >>> b = np.array([ [1,3],[1,3] ]) >>> b[np.arange(len(a)),axis=1)] array([2,3]) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |