有没有一种快速的方法(所以没有 for 循环)在 numpy 数组中找到每行的多数元素并从中创建一个新数组?
例如,如果您有以下 numpy 数组:
X =
[[ 1. 1. 1.]
[ 1. 0. 1.]
[ 1. 0. 1.]
[ 1. 1. 1.]
[ 1. 0. 1.]
[ 1. 0. 1.]
[ 0. 0. 0.]
[ 1. 1. 1.]
[ 0. 0. 0.]
[ 0. 0. 0.]
[ 0. 0. 0.]]
你可以执行 get_majority(X)
,这将输出
[ 1. 1. 1. 1. 1. 1. 0. 1. 0. 0. 0.]
我尝试通过遍历矩阵并使用 collections
中的 Counter
来做到这一点,但这对于大型矩阵来说非常慢,所以我想找到一个向量化的方法。
最佳答案
你可以使用 Scipy's mode -
from scipy.stats import mode
mode(X, axis=-1)[0]
关于python - 在numpy矩阵中获取每行的多数元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42841969/