Функция mode() в Python модуля statistics
В статистике значение, которое чаще встречается в предоставленном наборе значений данных, известно как mode. Другими словами, число или значение, которое имеет высокую частоту или появляется повторно, известно как режим или модальное значение. Модальное значение является одним из трех показателей Центральной тенденции. Двумя другими показателями являются среднее и медианное значение соответственно.
У нас есть набор A = . Поскольку цифра 6 имеет более высокую частоту, поэтому режим набора A равен 6. Таким образом, легко найти режим для конечного числа наблюдений. Набор значений данных может иметь одно модальное значение или несколько модальных значений или вообще не иметь режима. Часто говорят, что режимом непрерывного распределения вероятностей является любое значение x. Его функция плотности вероятности имеет максимальное локальное значение, поэтому любой пик является модой.
Функция mode() в Python
Python становится довольно сильным языком программирования, имея дело со статистикой и взаимодействуя с набором большого диапазона значений данных. Python предоставляет модуль statistics с множеством функций для работы с довольно большими наборами данных, и функция mode() является одной из них. mode() используется для возврата надежной меры центральной точки данных в предоставленном диапазоне наборов данных.
Функция mode() – единственная функция в стандартной библиотеке статистики языка программирования Python, которая может применяться к нечисловым(номинальным) данным.
Давайте посмотрим на синтаксис:
Параметр mode() – данные. Это может быть итерация или последовательность – например, списки, кортежи и многое другое.
Примечание. Ошибка StatisticsError будет вызвана функцией mode(), если параметр данных пуст.
Функция mode() вернет число с плавающей запятой или нечисловое(номинальное) значение в соответствии с предоставленными данными в параметре после расчета режима предоставленных данных в итераторах(например, списки, кортежи и многое другое. ).
Рассмотрим несколько примеров на основе функции mode() стандартной библиотеки статистики языка программирования Python.
Пример 1: Определение режима набора данных, приведенного ниже:
# importing the statistics library import statistics # creating the data set my_set = [10, 20, 30, 30, 40, 40, 40, 50, 50, 60] # estimating the mode of the given set my_mode = statistics.mode( my_set) # printing the estimated mode to the users print("Mode of given set of data values is", my_mode)
Mode of given set of data values is 40
В приведенном выше примере мы импортировали библиотеку статистики и создали набор my_set. Затем мы оценили режим данного набора с помощью функции statistics.mode() и распечатали его значение для пользователя. В результате значение, имеющее самую высокую частоту в наборе, было успешно напечатано.
Пример 2: Демонстрация работы функции mode() в Python с различными типами данных.
# importing the statistics library import statistics # importing the fractions module from fractions import Fraction as fr # creating the tuple of positive integer numbers data_1 =(20, 30, 30, 40, 50, 50, 50, 60, 70, 70) # creating the tuple of floating point values data_2 =(1.2, 2.3, 2.3, 3.4, 4.5, 4.5, 4.5, 5.6, 5.6, 7.8) # creating the tuple of fractional numbers data_3 =(fr(1,3), fr(1,5), fr(1,5), fr(2,3), fr(3,4), fr(8,9)) # creating the tuple of negative integer numbers data_4 =(-9, -8, -7, -7, -7, -6, -5, -5, -4, -2) # creating the tuple of strings data_5 =("apple", "mango", "mango", "mango", "banana", "guava", "guava") # estimating the mode of the given datasets mode_1 = statistics.mode( data_1) mode_2 = statistics.mode( data_2) mode_3 = statistics.mode( data_3) mode_4 = statistics.mode( data_4) mode_5 = statistics.mode( data_5) # printing the estimated modes to the users print("1. Mode of First Data set is", mode_1) print("2. Mode of Second Data set is", mode_2) print("3. Mode of Third Data set is", mode_3) print("4. Mode of Forth Data set is", mode_4) print("5. Mode of Fifth Data set is", mode_5)
1. Mode of First Data set is 50 2. Mode of Second Data set is 4.5 3. Mode of Third Data set is 1/5 4. Mode of Forth Data set is -7 5. Mode of Fifth Data set is mango
В приведенном выше примере мы импортировали библиотеку статистики и модуль fractions. Затем мы создали другой диапазон кортежей, чтобы проверить, работает ли функция mode() с различными типами данных. Мы создали кортеж из положительных целых чисел, значений с плавающей запятой, дробных, отрицательных целых чисел и строк. Затем мы использовали функцию statistics.mode() для расчета режима каждого набора данных. Затем мы распечатали эти оценочные значения для пользователей.
Дополнительно
Функция mode() – это статистическая функция, которая обычно используется в финансовом секторе для сравнения цен и значений с предыдущими записями. Это также помогает в вычислении и прогнозировании вероятных будущих цен на основе набора распределения цен.
Функция отдельно не используется; однако, наряду с двумя другими статистическими показателями, называемыми средним и медианным, эти три вместе работают как мощная утилита для раскрытия многих аспектов данных.
mode() method — Python statistics module
The mode is a statistical word that refers to the number frequently appearing in a set of numbers. The mode is determined by gathering and organizing data and counting the frequency of each result.
The Python statistics module includes various functions for working with massive data sets. One of these approaches is the mode() function.
The mode is the most likely value at which the data will be sampled.
Python mode() is a statistics module built-in function that applies to datasets like lists, arrays, or tuples.
The mode() method determines the central tendency of numerical or nominal data.
To find the most frequent number in a sequence, iterator, list, array, or tuple, we can use the Python mode() method.
mode() method returns the mode element from the dataset, which can be in the form of float, integer, string, etc.
Note: We must import the statistics module to use Python’s mode() method.
Example 1
Let’s take a look at an example of using the mode() method from Statistics in Python —
import statistics D1 = (51, 36, 87, 36, 87, 36) print(statistics.mode(D1)) D2 = ['abc', 'def', 'abc', 'ghi', 'def', 'jkl', 'def'] print(statistics.mode(D2))
The Output will be —
As we can see from the above code, 36 is the mode (central tendency) of the given data set D1.
Similarly, ‘def’ is the mode (central tendency) of the data set D2.
Example 2
There may be situations where our dataset may contain two elements that appear an equal number of times.
In Python version 3.8 and above, the mode() function can now handle this exact scenario of multimodal datasets. In this scenario, the first mode encountered is based on the index position of the elements in the dataset.
Here is another example of using the mode() method from Statistics in Python for the above scenario —
from statistics import mode from fractions import Fraction as fr D1 = ['k', 'l', 'k', 'l', 'k', 'l'] print("Mode of D1 is % s" % (mode(D1))) D2 = [2, 2, 2, 1, 1, 1] print("Mode of D2 is % s" % (mode(D2))) D3 = ['Hello', 100, 250, 'Hello', 100, 100, 'Hello'] print("Mode of D3 is % s" % (mode(D3))) D4 = (20, 30, 30, 40, 50, 50, 50, 60, 70, 50) print("Mode of D4 is % s" % (mode(D4))) D5 = (-1, -2, -3, -3, -3, -3, -5, -5, -4, -2) print("Mode of D5 is % s" % (mode(D5))) D6 = ('john', 'code', 'part', 'time', 'code', 'code part time') print("Mode of D6 is % s" % (mode(D6))) D7 = (0, 1, 2, 3, 4, 5) print("Mode of D7 is % s" % (mode(D7))) D8 = (fr(2, 3), fr(2, 3), fr(1, 3), fr(20, 3)) print("Mode of D8 is % s" % (mode(D8)))
The Output will be —
Mode of D1 is k
Mode of D2 is 2
Mode of D3 is Hello
Mode of D4 is 50
Mode of D5 is -3
Mode of D6 is code
Mode of D7 is 0
Mode of D8 is 2/3
Note: For D1, the code gives ‘k’ as mode, even though ‘k’ and ‘l’ appear an equal number of times, i.e., 3. But since in list ‘k’ appears before ‘l’, its index is encountered previous to ‘l’. That’s the reason ‘k’ gets printed.
Similarly, for D2, the mode index of ‘2’ gets encountered before ‘1’. That’s why even though the counts of ‘1’ and ‘2’ are equal, ‘2’ is printed as mode.
Creating our Mode Method in Python
We can also create our custom Mode method in Python. Use the example below to understand how the mode method works behind the scenes.
Since we are creating our Mode method, we don’t need to import the statistics module.
Here is the Python code where we create our Mode function and use them —
class elements: def __init__(self, element, appear_count): self.element = element self.appear_count = appear_count # Mode function def find_mode(D): size = len(D) index = 0 mode_list = [] max_entry = elements(0, 0) while index < size: entry = D[index] found = False for ele in mode_list: if ele.element == entry: ele.appear_count = ele.appear_count + 1 if ele.appear_count >max_entry.appear_count: max_entry.element = ele.element max_entry.appear_count = ele.appear_count found = True break if found == False: mode_list.append( elements(entry, 1)) index = index + 1 num_unique = len(mode_list) m_list = [] mode_is_available = False for ele in mode_list: if ele.appear_count == max_entry.appear_count: m_list.append(ele) else: mode_is_available = True if mode_is_available == True: return (m_list) else: return None # Print function def print_mode(mode): if mode != None: print('We have MODE for this set') for ele in mode: print(f'element = , appeared = times') print('-'*10) else: print('There is NO MODE for this set - ', D) print('-'*10) # Main Method if __name__ == '__main__': # Example 1 - List D = ['k', 'l', 'k', 'l', 'k', 'k'] mode = find_mode(D) print_mode(mode) # Example 2 - List D = [1, 2, 1, 2, 2, 1] mode = find_mode(D) print_mode(mode) # Example 3 - List D = ['Hello', 100, 250, 'Hello', 100, 100, 'Hello'] mode = find_mode(D) print_mode(mode) # Example 4 - Tuple D = (20, 30, 30, 40, 50, 50, 50, 60, 70, 50) mode = find_mode(D) print_mode(mode) # Example 5 - Tuple D = (-1, -2, -3, -3, -3, -3, -5, -5, -4, -2) mode = find_mode(D) print_mode(mode) # Example 6 - Tuple D = ('john', 'code', 'part', 'time', 'code', 'code part time') mode = find_mode(D) print_mode(mode)
The Output will be —
element = k , appeared = 4 times
———-
There is NO MODE for this set — [1, 2, 1, 2, 2, 1]———-
We have MODE for this set
element = Hello , appeared = 3 times
element = 100 , appeared = 3 times
———-
We have MODE for this set
element = 50 , appeared = 4 times
———-
We have MODE for this set
element = -3 , appeared = 4 times
———-
We have MODE for this set
element = code , appeared = 2 times
———-
As the above example shows, our code finds and prints the Mode for the lists and tuples above.
Although for Example 2, it currently prints ‘There is NO MODE for this set’, we can include one more check to it and return the first mode encountered.
I hope this article helped.
You may like to Explore further —