将概率数组转换为二进制数组

Tunring an array of probabilities, into a binary array

我正在尝试将总和为 1.0 的 NumPy 概率数组转换为二进制数组。本质上,我想把数组中的最大概率变成1,其余的变成0。当然,我知道如何使用 Python 来做到这一点,但我希望 NumPy 或 SciPy 已经提出了一个内置函数来提高操作的性能(我们正在谈论一个矩阵包含数百万个这样的数组)。

比较最大值的项目,并转换为 int

>>> a=np.array([0.435,0.24,0.241,0.13,0.56])

>>> np.int8( a == a.max() )
array([0, 0, 0, 0, 1], dtype=int8)