Numpy:给出了argmax的np.where函数

时间:2013-03-26 22:38:21

标签: python numpy

我正在尝试在两个2D numpy数组上执行此功能: 第1步:查找np.argmax(b, axis=1)索引。 第2步:查找b[indices] > a[indices] 第3步:返回2D布尔数组中的值。

我试过了:

np.where((b>a)&np.argmax(b,axis=1).reshape((3,-1)), True, False)

但没有骰子。有什么想法吗?

提前致谢。

1 个答案:

答案 0 :(得分:3)

根据您的意见,我最了解的是:

output = (np.max(b,axis=1)[...,None] == b) & (b > a)

我们利用Numpy广播来做“b”部分的最大行:

np.max(b,axis=1)[...,None] == b

或许更清楚:

np.max(b,axis=1)[...,np.newaxis] == b