Tehnografi.com - Технологические новости, обзоры и советы
[adinserter block="67"]

Как найти среднее значение, медиану и моду в Python?

Примечание. Следующая статья поможет вам: Как найти среднее значение, медиану и моду в Python?

Среднее значение, медиана и мода являются фундаментальными темами статистики. Вы можете легко вычислить их в Python, с использованием внешних библиотек и без них.

Эти три являются основными показателями центральной тенденции. Центральная тенденция позволяет нам узнать «нормальные» или «средние» значения набора данных. Если вы только начинаете заниматься наукой о данных, это руководство для вас.

Среднее, медиана, режим трех измерений центральной тенденции

К концу этого урока вы:

  • Понимание понятия среднего, медианы и моды
  • Уметь создавать свои собственные функции среднего, медианы и режима в Python.
  • Используйте Python статистика модуль для быстрого запуска использования этих измерений
  • Если вам нужна загружаемая версия следующих упражнений, не стесняйтесь проверить репозиторий GitHub.

    Давайте рассмотрим различные способы вычисления среднего значения, медианы и моды.

    Вычисление среднего значения в Python

    Среднее или среднее арифметическое является наиболее часто используемой мерой центральной тенденции.

    Помните, что центральная тенденция является типичным значением набора данных.

    Набор данных — это набор данных, поэтому набор данных в Python может быть любой из следующих встроенных структур данных:

  • Списки, кортежи и наборы: коллекция объектов
  • Строки: коллекция персонажей
  • Словарь: набор пар ключ-значение
  • Примечание: Хотя в Python есть и другие структуры данных, такие как очереди или стеки, мы будем использовать только встроенные.

    Мы можем вычислить среднее значение, добавив все значения набора данных и разделив результат на количество значений. Например, если у нас есть следующий список чисел:

    [1, 2, 3, 4, 5, 6]

    Среднее или среднее будет 3,5 потому что сумма списка 21 и его длина 6. Двадцать один разделить на шесть равно 3,5. Вы можете выполнить этот расчет с помощью следующего расчета:

    (1 + 2 + 3 + 4 + 5 + 6) / 6 = 21

    В этом уроке мы будем использовать игроков баскетбольной команды в качестве примера данных.

    Создание пользовательской функции среднего

    Начнем с расчета среднего (среднего) возраста игроков баскетбольной команды. Название команды будет «Pythonic Machines».

    pythonic_machine_ages = [19, 22, 34, 26, 32, 30, 24, 24]

    def mean (набор данных): возвращаемая сумма (набор данных) / len (набор данных) print (mean (pythonic_machine_ages))

    Разбираем этот код:

  • «pythonic_machine_ages» — это список возрастов баскетболистов.
  • Мы определяем иметь в виду() функция, которая возвращает сумму данного набора данных, деленную на его длину
  • сумма() функция возвращает общую сумму (по иронии судьбы) значений итерируемого объекта, в данном случае списка. Попробуйте передать набор данных в качестве аргумента, он вернет 211
  • лен () функция возвращает длину итерации, если вы передадите ей набор данных, вы получите 8
  • Мы передаем возраст баскетбольной команды иметь в виду() функцию и вывести результат.
  • Если вы проверите вывод, вы получите:

    26,375 # Потому что 211/8 = 26,375

    Этот результат представляет собой средний возраст игроков баскетбольной команды. Обратите внимание, что число не появляется в наборе данных, но точно описывает возраст большинства игроков.

    Использование mean() из статистического модуля Python

    Вычисление показателей центральной тенденции является обычной операцией для большинства разработчиков. Это связано с тем, что модуль статистики Python предоставляет различные функции для их расчета, а также другие основные темы статистики.

    Поскольку это часть стандартной библиотеки Python, вам не нужно устанавливать какой-либо внешний пакет с PIP.

    Вот как вы используете этот модуль:

    из статистики импорта означает pythonic_machine_ages = [19, 22, 34, 26, 32, 30, 24, 24]

    печать (значение (pythonic_machine_ages))

    В приведенном выше коде вам просто нужно импортировать иметь в виду() функцию от статистика модуль и передать ему набор данных в качестве аргумента. Это вернет тот же результат, что и пользовательская функция, которую мы определили в предыдущем разделе:

    26.375

    Теперь у вас есть кристально чистая концепция иметь в виду давайте продолжим с медиана измерение.

    Нахождение медианы в Python

    Медиана – это среднее значение отсортированного набора данных. Он используется — опять же — для получения «типичного» значения определенной совокупности.

    В программировании мы можем определить медиану как значение, которое разделяет последовательность на две части — нижнюю половину и верхнюю половину.

    Чтобы вычислить медиану, сначала нам нужно отсортировать набор данных. Мы могли бы сделать это с помощью алгоритмов сортировки или с помощью встроенной функции отсортировано(). Второй шаг — определить, является ли длина набора данных четной или нечетной. В зависимости от этого некоторые из следующих процессов:

  • Странный: Медиана — это среднее значение набора данных.
  • Даже: Медиана — это сумма двух средних значений, деленная на два
  • Продолжая работу с набором данных нашей баскетбольной команды, давайте рассчитаем средний рост игроков в сантиметрах:

    [181, 187, 196, 196, 198, 203, 207, 211, 215]

    # Поскольку набор данных нечетный, мы выбираем среднее значение median = 198

    Как видите, поскольку длина набора данных нечетная, мы можем взять среднее значение в качестве медианы. Однако что произойдет, если игрок только что вышел на пенсию?

    Нам нужно будет вычислить медиану, взяв два средних значения набора данных.

    [181, 187, 196, 198, 203, 207, 211, 215]

    # Мы выбираем два средних значения и делим их на 2 медианы = (198 + 203) / 2 медианы = 200,5

    Создание пользовательской медианной функции

    Давайте реализуем описанную выше концепцию в функции Python.

    Помните три шага, которые нам нужно выполнить, чтобы получить медиану набора данных:

  • Отсортируйте набор данных: Мы можем сделать это с помощью отсортировано() функция
  • Определить, четное оно или нечетное: Мы можем сделать это, получив длину набора данных и используя оператор по модулю (%)
  • Верните медиану на основе каждого случая:
  • Странный: Вернуть среднее значение
  • Даже: Возвращает среднее значение двух средних значений
  • Это приведет к следующей функции:

    pythonic_machines_heights = [181, 187, 196, 196, 198, 203, 207, 211, 215]
    после выхода на пенсию = [181, 187, 196, 198, 203, 207, 211, 215]

    def median(dataset): data = sorted(dataset) index = len(data) // 2 # Если набор данных нечетный if len(dataset) % 2 != 0: вернуть данные[index]

    # Если набор данных даже возвращается (данные[index – 1] + данные[index]) / 2

    Печать результата наших наборов данных:

    печать (медиана (pythonic_machines_heights)) печать (медиана (after_retirement))

    Выход:

    198 200,5

    Обратите внимание, как мы создаем данные переменная, указывающая на отсортированную базу данных в начале функции. Хотя приведенные выше списки отсортированы, мы хотим создать повторно используемую функцию, поэтому набор данных будет сортироваться при каждом вызове функции.

    индекс сохраняет среднее значение — или верхнее среднее значение — набора данных, используя целочисленное деление оператор. Например, если бы мы передавали список «pythonic_machine_heights», он имел бы значение 4.

    Помните, что в Python индексы последовательности начинаются с нуля, потому что мы можем вернуть средний индекс списка с целочисленным делением.

    Затем мы проверяем, является ли длина набора данных нечетной, сравнивая результат операции по модулю с любым значением, отличным от нуля. Если условие истинно, мы возвращаем средний элемент, например, со списком «pythonic_machine_heights»:

    >>> pythonic_machine_heights[4]
    № 198

    С другой стороны, если набор данных четный, мы возвращаем сумму средних значений, деленную на два. Обратите внимание, что данные[index -1] дает нам нижнюю среднюю точку набора данных, а данные[index] дает нам верхнюю среднюю точку.

    Использование median() из статистического модуля Python

    Этот способ намного проще, потому что мы используем уже существующую функцию из модуля статистики.

    Лично для меня, если бы что-то уже было определено, я бы использовал это из-за принципа DRY — Don’t Repeat Yourself (в данном случае — не повторять чужой код).

    Вы можете вычислить медиану предыдущих наборов данных с помощью следующего кода:

    медиана импорта статистики pythonic_machines_heights = [181, 187, 196, 196, 198, 203, 207, 211, 215]
    после выхода на пенсию = [181, 187, 196, 198, 203, 207, 211, 215]

    печать (медиана (pythonic_machines_heights)) печать (медиана (after_retirement))

    Выход:

    198 200,5

    Вычисление режима в Python

    Мода — это наиболее часто встречающееся значение в наборе данных. Мы можем думать об этом как о «популярной» группе школы, которая может представлять собой стандарт для всех учащихся.

    Примером режима могут быть ежедневные продажи в магазине техники. Режим этого набора данных будет самым продаваемым продуктом за определенный день.

    [‘laptop’, ‘desktop’, ‘smartphone’, ‘laptop’, ‘laptop’, ‘headphones’]

    Как вы понимаете, режим приведенного выше набора данных — «ноутбук», потому что это наиболее часто встречающееся значение в списке.

    Преимущество режима в том, что набор данных не должен быть числовым. Например, мы можем работать со строками.

    Проанализируем продажи другого дня:

    [‘mouse’, ‘camera’, ‘headphones’, ‘usb’, ‘headphones’, ‘mouse’]

    Приведенный выше набор данных имеет два режима: «мышь» и «наушники», потому что оба имеют частоту, равную двум. Это означает, что это мультимодальный набор данных.

    Что, если мы не сможем найти моду в наборе данных, как показано ниже?

    [‘usb’, ‘camera’, ‘smartphone’, ‘laptop’, ‘TV’]

    Это называется равномерным распределением, в основном это означает, что в наборе данных нет моды.

    Теперь, когда вы быстро разобрались с концепцией режима, давайте посчитаем его в Python.

    Создание функции пользовательского режима

    Мы можем думать о частоте значения как о паре ключ-значение, другими словами, как о словаре Python.

    Повторяя аналогию с баскетболом, мы можем использовать два набора данных для работы: количество очков за игру и спонсорство кроссовок некоторых игроков.

    Чтобы сначала найти моду, нам нужно создать словарь частот с каждым из значений, присутствующих в наборе данных, затем получить максимальную частоту и вернуть все элементы с этой частотой.

    Переведем это в код:

    очков_за_игру = [3, 15, 23, 42, 30, 10, 10, 12]
    спонсорство = [‘nike’, ‘adidas’, ‘nike’, ‘jordan’,
    ‘jordan’, ‘rebook’, ‘under-armour’, ‘adidas’]

    режим определения (набор данных): частота = {} для значения в наборе данных: частота[value] = частота.получить(значение, 0) + 1 наиболее_частая = макс.(частота.значения()) режимы = [key for key, value in frequency.items()
    if value == most_frequent]

    режимы возврата

    Проверка результата с передачей двух списков в качестве аргументов:

    print(mode(points_per_game)) print(mode(спонсорство))

    Выход:

    [10]
    [‘nike’, ‘adidas’, ‘jordan’]

    Как видите, первый оператор печати дал нам один режим, а второй вернул несколько режимов.

    Объяснение более глубокого кода выше:

  • Мы объявляем частота толковый словарь
  • Мы перебираем набор данных, чтобы создать гистограмму — статистический термин для набора счетчиков (или частот) —
  • Если ключ найден в словаре, то он добавляет единицу к значению
  • Если он не найден, мы создаем пару ключ-значение со значением один
  • наиболее_частый переменная хранит — по иронии судьбы — самое большое значение (не ключ) частотного словаря
  • Мы возвращаем режимы переменная, которая состоит из всех ключей в частота словарь с наибольшей частотой.
  • Обратите внимание, как важно именовать переменные для написания читаемого кода.

    Использование режима() и мультимода() из статистического модуля Python

    И снова модуль статистики предоставляет нам быстрый способ выполнения основных операций со статистикой.

    Мы можем использовать две функции: mode() и multimode().

    из режима импорта статистики, многорежимный points_per_game = [3, 15, 23, 42, 30, 10, 10, 12]
    спонсорство = [‘nike’, ‘adidas’, ‘nike’, ‘jordan’,
    ‘jordan’, ‘rebook’, ‘under-armour’, ‘adidas’]

    Приведенный выше код импортирует обе функции и определяет наборы данных, с которыми мы работали.

    Вот небольшая разница: Режим() функция возвращает первый режим, с которым она сталкивается, в то время как многомодовый() возвращает список с наиболее часто встречающимися значениями в наборе данных.

    Следовательно, мы можем сказать, что пользовательская функция, которую мы определили, на самом деле является многомодовый() функция.

    print(mode(points_per_game)) print(mode(спонсорство))

    Выход:

    10 найк

    Примечание: В Python 3.8 или выше функция mode() возвращает первый найденный режим. Если у вас более старая версия, вы получите StatisticsError.

    С использованием многомодовый() функция:

    print (многорежимный (points_per_game)) print (многорежимный (спонсорство))

    Выход:

    [10]
    [‘nike’, ‘adidas’, ‘jordan’]

    Подводить итоги

    Поздравления! Если вы дочитали до этого момента, вы научились вычислять среднее значение, медиану и моду, основные измерения центральной тенденции.

    Хотя вы можете определить свои пользовательские функции для поиска среднего значения, медианы и моды, рекомендуется использовать модуль статистики, так как он является частью стандартной библиотеки, и вам не нужно ничего устанавливать, чтобы начать его использовать.

    Затем прочитайте дружественное введение в анализ данных в Python.