Рубрики
Без рубрики

[Numpy] Как рассчитать среднее по оси?

В этой статье объясняется, как рассчитать базовые статистики, такие как среднее, стандартное отклонение и дисперсия вдоль оси. Мы используем Numpy Library для вычислений линейных алгебр. Эти три способа очень похожи – если вы понимаете одного из них, вы поймете все их. TLDR; Для среднего простого массива X вдоль оси, … [Numpy] Как рассчитать среднее по оси? Прочитайте больше “

Автор оригинала: Chris.

В этой статье объясняется, как рассчитать базовые статистики, такие как среднее, стандартное отклонение и дисперсия вдоль ось. Мы используем Numpy Library Для вычислений линейной алгебры. Эти три способа очень похожи – если вы понимаете одного из них, вы поймете все их.

TLDR;

В среднем Numpy Array х вдоль оси, позвоните np.average () С аргументами х и идентификатор оси. Например, np.average (x,) Средние значения вдоль оси 1. Внешнее измерение имеет идентификатор оси «0», второй внешний размер имеет идентификатор «1». Python разрушает идентифицированную ось и заменяет ее в среднем оси, что снижает размерность полученного массива на один.

Не стесняйтесь смотреть видео во время скидки над статьей для максимальной эффективности обучения:

Графическое объяснение

Вот что вы хотите достичь:

Извлечение базовых статистических данных, таких как средняя, дисперсия, стандартное отклонение от Numpy массивов и 2D-матриц, является критическим компонентом для анализа широкого спектра наборов данных, таких как финансовые данные, данные о здоровье или данные социальных сетей. С ростом машинного обучения и науки о данных, вашему опытному образованию операторов линейной алгебры с Numpy становится все более ценным для рынка

Кодовое решение

Вот как вы можете выполнить эту задачу в Numpy:

import numpy as np

x = np.array([[1, 3, 5],
              [1, 1, 1],
              [0, 2, 4]])

print(np.average(x, axis=1))
# [3. 1. 2.]

print(np.var(x, axis=1))
# [2.66666667 0.  2.66666667]

print(np.std(x, axis=1))
# [1.63299316 0.  1.63299316]

Медленное объяснение

Далее я буду Объясните Вы, как это работает в пошаговой манере.

Numpy Internall представляет данные, используя numpy массивы ( np.array ). Эти массивы могут иметь произвольное количество измерений. На рисунке выше мы показываем двумерное множество массивов, но на практике массив может иметь гораздо более высокую размерность. Вы можете быстро определить размерность NaMpy Array, подсчитав количество открытых кронштейнов «[» при создании массива. (Чем более формальная альтернатива будет использовать свойство NDIM Свойство .)

Каждое измерение имеет свой собственный идентификатор оси.

💡 Правило большого пальца : Внешнее измерение имеет идентификатор «0», второй внешний размер имеет идентификатор «1» и так далее.

По умолчанию среднее значение Numpy, дисперсия и стандартные функции отклонения объединяют все значения в небольшом массиве на одно значение.

Вы хотите стать Numpy Master? Проверьте нашу интерактивную книгу головоломки Coffe Break Numpy И повысить свои навыки науки о данных! (Ссылка Amazon открывается на новой вкладке.)

Простое среднее, дисперсия, стандартное отклонение

Что произойдет, если вы не укажете какой-либо дополнительный аргумент, кроме массива NUMPY, на котором вы хотите выполнить операцию (среднее, дисперсия, стандартное отклонение)?

import numpy as np

x = np.array([[1, 3, 5],
              [1, 1, 1],
              [0, 2, 4]])



print(np.average(x))
# 2.0

print(np.var(x))
# 2.4444444444444446

print(np.std(x))
# 1.5634719199411433

Например, простое среднее значение naMpy рассчитывается следующим образом:

(1+3+5+1+1+1+0+2+4)/9 = 18/9 = 2.0

Расчет среднего, дисперсия, стандартное отклонение вдоль оси

Однако иногда вы хотите рассчитать эти функции вдоль оси.

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

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

import numpy as np


## Stock Price Data: 5 companies
# (row=[price_day_1, price_day_2, ...])
x = np.array([[8, 9, 11, 12],
              [1, 2, 2, 1], 
              [2, 8, 9, 9],
              [9, 6, 6, 3],
              [3, 3, 3, 3]])


avg, var, std = np.average(x, axis=1), np.var(x, axis=1), np.std(x, axis=1)

print("Averages: " + str(avg))
print("Variances: " + str(var))
print("Standard Deviations: " + str(std))

"""
Averages: [10.   1.5  7.   6.   3. ]
Variances: [2.5  0.25 8.5  4.5  0.  ]
Standard Deviations: [1.58113883 0.5        2.91547595 2.12132034 0.        ]
"""

Обратите внимание, что вы хотите выполнить эти три функции вдоль I.E., это ось, которая агрегируется до одно значение. Следовательно, полученные Numpy массивы имеют уменьшенную размерность.

Высокомерное усреднение вдоль оси

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

Вот пример:

import numpy as np

x = np.array([[[1,2], [1,1]],
              [[1,1], [2,1]],
              [[1,0], [0,0]]])


print(np.average(x, axis=2))
print(np.var(x, axis=2))
print(np.std(x, axis=2))

"""
[[1.5 1. ]
 [1.  1.5]
 [0.5 0. ]]
[[0.25 0.  ]
 [0.   0.25]
 [0.25 0.  ]]
[[0.5 0. ]
 [0.  0.5]
 [0.5 0. ]]
"""

Куда пойти отсюда?

Навыки прочной программирования являются основой вашего тщательного образования в качестве ученого-ученого по данным и эксперту машинного обучения. Мастер Питона сначала!

К это End, я создал чит-листовую онлайн-сообщество учащихся по всему миру.

Присоединяйтесь к более чем 55 000 абонентов электронной почты и загрузите свои личные чис-листы Python в виде PDF с высоким разрешением. Распечатайте их, изучите их и продолжайте консультироваться с ними ежедневно, пока вы не оспариваете каждый бит Python Syntax Heart:

Работая в качестве исследователя в распределенных системах, доктор Кристиан Майер нашел свою любовь к учению студентов компьютерных наук.

Чтобы помочь студентам достичь более высоких уровней успеха Python, он основал сайт программирования образования Finxter.com Отказ Он автор популярной книги программирования Python One-listers (Nostarch 2020), Coauthor of Кофе-брейк Python Серия самооставленных книг, энтузиаста компьютерных наук, Фрилансера и владелец одного из лучших 10 крупнейших Питон блоги по всему миру.

Его страсти пишут, чтение и кодирование. Но его величайшая страсть состоит в том, чтобы служить стремлению кодер через Finxter и помогать им повысить свои навыки. Вы можете присоединиться к его бесплатной академии электронной почты здесь.