Python 获取numpy矩阵中每行的多数元素
有没有一种快速的方法(因此没有循环)来查找numpy数组中每行的多数元素并由此创建一个新数组 例如,如果您有以下numpy数组:Python 获取numpy矩阵中每行的多数元素,python,arrays,numpy,matrix,Python,Arrays,Numpy,Matrix,有没有一种快速的方法(因此没有循环)来查找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.]] 您可以执行获取多数(X),
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.]]
您可以执行获取多数(X)
,这将输出
[ 1. 1. 1. 1. 1. 1. 0. 1. 0. 0. 0.]
我尝试通过循环矩阵并使用集合
中的计数器
来实现这一点,但这对于大型矩阵来说非常缓慢,因此我想找到一种矢量化方法来实现这一点。您可以使用-
from scipy.stats import mode
mode(X, axis=-1)[0]