计算 NumPy 中数组的众数

Muhammad Maisam Abbas 2023年1月30日
  1. 使用 scipy.stats.mode() 函数计算 NumPy 数组的众数
  2. 使用 numpy.unique() 函数计算 NumPy 数组的众数
计算 NumPy 中数组的众数

本教程将介绍如何在 Python 中计算 NumPy 数组的众数。

使用 scipy.stats.mode() 函数计算 NumPy 数组的众数

众数是集合中重复次数最多的值。scipy.stats 库包含许多与统计相关的函数。scipy.stats 库中的 mode() 函数 在 Python 中查找数组的模式。它接受一个数组作为输入参数并返回输入数组中最常见值的数组。为了让这个方法起作用,我们必须安装 scipy 包。下面给出了安装它的命令。

pip install scipy

以下代码示例向我们展示了如何使用 scipy.stats.mode() 函数计算 NumPy 数组内的模式。

import numpy as np
from scipy import stats

array = np.array([1, 2, 3, 4, 4, 5])
mode = stats.mode(array)
print(mode[0])

输出:

[4]

我们首先使用 np.array() 函数创建了数组 array。然后我们使用 scipy.stats.mode() 函数计算模式并将结果存储在 mode 数组中。最后,我们通过打印 mode 数组的第一个元素来显示重复次数最多的值。

使用 numpy.unique() 函数计算 NumPy 数组的众数

如果我们只想使用 NumPy 包来查找模式,我们可以使用 numpy.unique() 函数。numpy.unique() 函数 将数组作为输入参数,并返回输入数组内所有唯一元素的数组。我们还可以将 return_count 参数指定为 True 以获取每个唯一元素在输入数组中重复的次数。

import numpy as np

array = np.array([1, 2, 3, 4, 4, 5])
vals, counts = np.unique(array, return_counts=True)
index = np.argmax(counts)
print(vals[index])

输出:

4

在上面的代码中,我们使用 Python 中的 np.unique()np.argmax() 函数计算了 NumPy 数组 array 的众数。我们首先使用 np.array() 函数创建了数组 array。然后我们使用 np.unique() 函数并将唯一值存储在 vals 数组中,每个值在 counts 数组中重复的次数。然后我们使用 np.argmax() 函数计算 counts 数组中的最大值,并将该值存储在 index 变量中。最后,我们通过在 vals 数组的 index 索引处打印值来显示模式。

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn