Как найти среднее геометрическое в питоне
Перейти к содержимому

Как найти среднее геометрическое в питоне

  • автор:

Как найти среднее геометрическое в питоне

Скачай курс
в приложении

Перейти в приложение
Открыть мобильную версию сайта

© 2013 — 2023. Stepik

Наши условия использования и конфиденциальности

Get it on Google Play

Public user contributions licensed under cc-wiki license with attribution required

Функция geometric_mean() модуля statistics в Python, среднее геометрическое

Среднее геометрическое элементов последовательности

Синтаксис:
import statistics # Новое в Python 3.8. statistics.geometric_mean(data) 
Параметры:
  • data — данные, последовательность или итерация.
Возвращаемое значение:
  • возвращает среднее геометрическое элементов последовательности.
Описание:

Функция geometric_mean() модуля statistics преобразует элементы последовательности data в числа с плавающей запятой float и вычисляет и возвращает среднее геометрическое этой последовательности.

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

Аргумент data может быть последовательностью или итерацией. Если последовательность данных data пуста, содержит ноль или отрицательное значение, то функция statistics.geometric_mean() вызывает ошибку StatisticsError .

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

Примеры использования функции statistics.geometric_mean() :

>>> import statistics >>> g_mean = statistics.geometric_mean([54, 24, 36]) >>> round(g_mean, 1) # 36.0 >>> from fractions import Fraction as F >>> statistics.geometric_mean([F(3, 7), F(1, 21), F(5, 3), F(1, 3)]) # 0.3263118562050573 
  • ОБЗОРНАЯ СТРАНИЦА РАЗДЕЛА
  • Функция mean() и fmean() модуля statistics, среднее арифметическое
  • Функция geometric_mean() модуля statistics, среднее геометрическое
  • Функция harmonic_mean() модуля statistics, среднее гармоническое
  • Функция median() модуля statistics, медиана последовательности
  • Функция median_low() модуля statistics, наименьшее среднее значение
  • Функция median_high() модуля statistics, наибольшее среднее значение
  • Функция median_grouped() модуля statistics, медиана непрерывных данных
  • Функция mode() модуля statistics, распространенный элемент
  • Функция multimode() модуля statistics, часто встречающиеся элементы
  • Функция pstdev() модуля statistics, стандартное отклонение
  • Функция pvariance() модуля statistics, дисперсия элементов
  • Функция stdev() модуля statistics, выборочное отклонение
  • Функция variance() модуля statistics, выборочная дисперсия
  • Функция quantiles() модуля statistics, интервалы равной вероятности
  • Класс NormalDist() модуля statistics, распределение случайной величины
  • Функция covariance() модуля statistics ковариация данных
  • Функция correlation() модуля statistics, корреляция Пирсона
  • Функция linear_regression() модуля statistics, линейная регрессия

Как вычислить среднее геометрическое в Python (с примерами)

В Python есть два способа вычисления среднего геометрического:

Метод 1: вычислить среднее геометрическое с помощью SciPy

from scipy. stats import gmean #calculate geometric mean gmean([value1, value2, value3, . ]) 

Метод 2: вычислить среднее геометрическое с помощью NumPy

import numpy as np #define custom function def g_mean(x): a = np.log (x) return np.exp (a.mean()) #calculate geometric mean g_mean([value1, value2, value3, . ]) 

Оба метода вернут одинаковые результаты.

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

Пример 1: расчет среднего геометрического с помощью SciPy

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

from scipy. stats import gmean #calculate geometric mean gmean([1, 4, 7, 6, 6, 4, 8, 9]) 4.81788719702029 

Среднее геометрическое оказывается равным 4,8179 .

Пример 2: вычисление среднего геометрического с использованием NumPy

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

import numpy as np #define custom function def g_mean(x): a = np.log (x) return np.exp (a.mean()) #calculate geometric mean g_mean([1, 4, 7, 6, 6, 4, 8, 9]) 4.81788719702029 

Среднее геометрическое оказывается равным 4,8179 , что соответствует результату из предыдущего примера.

Как обращаться с нулями

Обратите внимание, что оба метода возвращают ноль, если в массиве, с которым вы работаете, есть нули.

Таким образом, вы можете использовать следующий фрагмент кода, чтобы удалить все нули из массива перед вычислением среднего геометрического:

#create array with some zeros x = [1, 0, 0, 6, 6, 0, 8, 9] #remove zeros from array x_new = [i for i in x if i != 0] #view updated array print(x_new) [1, 6, 6, 8, 9] 

Урок 2.1. История двух средних величин

Среднее арифметическое (средняя величина, arithmetic mean) двух чисел это:

Среднее геометрическое (geometric mean) значение вычисляется по формуле:

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

Примечание для учителя: Использование средних значений в задачах
Пример: Высота гипотенузы прямоугольного треугольника является средним геометрическим двух сегментов гипотенузы.
Пример: В арифметической последовательности каждый член после первого является средним арифметическим двух соседних членов. В геометрической последовательности каждый член после первого является средним геометрическим двух соседних членов.
gm

1. Начните новую строку со знака # (знак фунта, номера или хэштега). Его можно найти в кнопках пунктуации. Этот знак нужен для того, чтобы написать комментарий, который система не будет учитывать при запуске программы. После знака # напишите предложение, описывающее цель вашей программы. Также вы можете нажать ctrl+T в любой строке, чтобы преобразить ее в комментарий. А чем он полезен, вы узнаете ниже:

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

2. Для вычислений в программе вам необходимо будет использовать квадратный корень, а эта функция не является встроенной для языка Python. Квадратный корень (sqrt) и другие математические функции можно найти в стандартном модуле Python, который называется math. Для того чтобы использовать эту функцию, вам необходимо «загрузить» математический модуль в свой код. В пункте меню menu > math выберите выражение сверху:

from math import *

Звездочка (*) означает загрузить все.

Примечание для учителя: Вы также можете вручную ввести from math import sqrt, если уверены, что при вычислении вам понадобится только функция квадратного корня sqrt. Или написать import math, после чего необходимо указать точно, какая функция нужна — math.sqrt().
Модуль math (также как модули random и time) является стандартным модулем TI-Nspire Python.

3. Далее используйте выражение input, чтобы ввести первое число. Сначала впишите переменную a и поставьте знак =.

Напоминаем, что выражение input выдает строку, поэтому вам нужно конвертировать ее в число. Можно объединить эти два шага с помощью следующего выражения:

a = float(input( ))

Чтобы это сделать, сначала найдите функцию float() в меню: menu > Built-ins > Type, затем поищите функцию input() в меню menu > Built-ins > I/O.

В качестве подсказки внутри скобок напишите «First number?» («Первое число?»).

Запишите второе выражение, чтобы ввести второе число (сделайте это самостоятельно, пример здесь не указан).

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

4. Напишите два оператора присваивания. Один для среднего арифметического, другой — для среднего геометрического:

am = (a + b) / 2

gm = sqrt(a * b)

Функцию sqrt() можно найти в меню: menu > math.

5. Последним шагом в задании будет написание выражений print() для отображения двух вычисленных значений. Пример того, как это сделать, мы даем ниже. А вы можете попробовать это сделать сами:

print( «am gm » style=»display: block; margin-left: auto; margin-right: auto;» src=»https://calculators-online.ru/baza-znanij/programmirovanie-ti/python-10-minutes-codes/assets/images/1297/2.1.8.png» alt=»» width=»350″ />

6. Чтобы запустить программу, нажмите ctrl+R. Затем для проверки введите два числа, ответы для которых вы можете легко вычислить в уме. А теперь пришло время ПРОТЕСТИРОВАТЬ программу!

Мы надеемся, что после нескольких попыток работы с этим примером, вы начнете понимать связь между двумя средними значениями. Является ли одно всегда больше другого? Бывают ли они равны? Как они изменяются в зависимости от тех чисел, которые вы вводите? Существуют ли значения, при которых система выдает ошибку?

Обсудите свои ответы с учителем! Сумеете ли вы доказать свои гипотезы?

Примечание для учителя: am >= gm (Когда эти два средних значения могут равняться друг другу?)
Значения am и gm всегда находятся между a и b.
Формула нахождения am работает для всех действительных и комплексных чисел.
А формула вычисления gm работает только с положительными числами.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *