Python统计模块中的 mode()函数
一组数据值的众数是出现频率最高的值。它是最有可能对数据进行采样的值。连续概率分布的模式通常被认为是其概率密度函数具有局部最大值的任何值 x,因此任何峰值都是一个模式。
Python在统计数据和处理大量值时非常健壮。统计模块有大量的函数可以处理非常大的数据集。 mode()函数就是这样的方法之一。此函数返回给定数据集中范围内中心数据点的稳健度量。
例子 :
Given data-set is : [1, 2, 3, 4, 4, 4, 4, 5, 6, 7, 7, 7, 8]
The mode of the given data-set is 4
Logic: 4 is the most occurring/ most common element from the given list
Syntax :
mode([data-set])
Parameters :
[data-set] which is a tuple, list or a iterator of
real valued numbers as well as Strings.
Return type :
Returns the most-common data point from discrete or nominal data.
Errors and Exceptions :
Raises StatisticsError when data set is empty.
代码#1:这篇文章将通过一个简单的例子来演示 mode()函数。
Python3
# Python code to demonstrate the
# use of mode() function
# mode() function a sub-set of the statistics module
# We need to import the statistics module before doing any work
import statistics
# declaring a simple data-set consisting of real valued
# positive integers.
set1 =[1, 2, 3, 3, 4, 4, 4, 5, 5, 6]
# In the given data-set
# Count of 1 is 1
# Count of 2 is 1
# Count of 3 is 2
# Count of 4 is 3
# Count of 5 is 2
# Count of 6 is 1
# We can infer that 4 has the highest population distribution
# So mode of set1 is 4
# Printing out mode of given data-set
print("Mode of given data set is % s" % (statistics.mode(set1)))
Python3
# Python code to demonstrate the
# working of mode() function
# on a various range of data types
# Importing the statistics module
from statistics import mode
# Importing fractions module as fr
# Enables to calculate harmonic_mean of a
# set in Fraction
from fractions import Fraction as fr
# tuple of positive integer numbers
data1 = (2, 3, 3, 4, 5, 5, 5, 5, 6, 6, 6, 7)
# tuple of a set of floating point values
data2 = (2.4, 1.3, 1.3, 1.3, 2.4, 4.6)
# tuple of a set of fractional numbers
data3 = (fr(1, 2), fr(1, 2), fr(10, 3), fr(2, 3))
# tuple of a set of negative integers
data4 = (-1, -2, -2, -2, -7, -7, -9)
# tuple of strings
data5 = ("red", "blue", "black", "blue", "black", "black", "brown")
# Printing out the mode of the above data-sets
print("Mode of data set 1 is % s" % (mode(data1)))
print("Mode of data set 2 is % s" % (mode(data2)))
print("Mode of data set 3 is % s" % (mode(data3)))
print("Mode of data set 4 is % s" % (mode(data4)))
print("Mode of data set 5 is % s" % (mode(data5)))
Python3
# Python code to demonstrate the
# statistics error in mode function
'''
StatisticsError is raised while using mode when there are
two equal modes present in a data set and when the data set
is empty or null
'''
# importing statistics module
import statistics
# creating a data set consisting of two equal data-sets
data1 =[1, 1, 1, -1, -1, -1]
# In the above data set
# Count of 1 is 3
# Count of -1 is also 3
# StatisticsError will be raised
print(statistics.mode(data1))
Mode of given data set is 4
代码 #2:在这段代码中,我们将演示 mode()函数的各种数据集。
Python3
# Python code to demonstrate the
# working of mode() function
# on a various range of data types
# Importing the statistics module
from statistics import mode
# Importing fractions module as fr
# Enables to calculate harmonic_mean of a
# set in Fraction
from fractions import Fraction as fr
# tuple of positive integer numbers
data1 = (2, 3, 3, 4, 5, 5, 5, 5, 6, 6, 6, 7)
# tuple of a set of floating point values
data2 = (2.4, 1.3, 1.3, 1.3, 2.4, 4.6)
# tuple of a set of fractional numbers
data3 = (fr(1, 2), fr(1, 2), fr(10, 3), fr(2, 3))
# tuple of a set of negative integers
data4 = (-1, -2, -2, -2, -7, -7, -9)
# tuple of strings
data5 = ("red", "blue", "black", "blue", "black", "black", "brown")
# Printing out the mode of the above data-sets
print("Mode of data set 1 is % s" % (mode(data1)))
print("Mode of data set 2 is % s" % (mode(data2)))
print("Mode of data set 3 is % s" % (mode(data3)))
print("Mode of data set 4 is % s" % (mode(data4)))
print("Mode of data set 5 is % s" % (mode(data5)))
Mode of data set 1 is 5
Mode of data set 2 is 1.3
Mode of data set 3 is 1/2
Mode of data set 4 is -2
Mode of data set 5 is black
代码 #3:这段代码将演示何时引发StatisticsError
Python3
# Python code to demonstrate the
# statistics error in mode function
'''
StatisticsError is raised while using mode when there are
two equal modes present in a data set and when the data set
is empty or null
'''
# importing statistics module
import statistics
# creating a data set consisting of two equal data-sets
data1 =[1, 1, 1, -1, -1, -1]
# In the above data set
# Count of 1 is 3
# Count of -1 is also 3
# StatisticsError will be raised
print(statistics.mode(data1))
输出
Traceback (most recent call last):
File "/home/38fbe95fe09d5f65aaa038e37aac20fa.py", line 20, in
print(statistics.mode(data1))
File "/usr/lib/python3.5/statistics.py", line 474, in mode
raise StatisticsError('no mode for empty data') from None
statistics.StatisticsError: no mode for empty data
NOTE: In newer versions of Python, like Python 3.8, the actual mathematical concept will be applied when there are multiple modes for a sequence, where, the smallest element is considered as a mode.
Say, for the above code, the frequencies of -1 and 1 are the same, however, -1 will be the mode, because of its smaller value.
应用: mode() 是一种统计函数,主要用于金融部门,用于将价值/价格与过去的详细信息进行比较,从价格分布集中计算/预测可能的未来价格。 mean() 不是单独使用的,而是与其他两个统计支柱一起使用,均值和中位数创建了一个非常强大的工具,可用于揭示数据的任何方面。