Библиотека Numpy. Расчет статистик по данным в массиве

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

Введение

Импортируйте библиотеку Numpy, если вы еще этого не сделали.

>>> import numpy as np

Для начала создадим матрицу, которая нам понадобится в работе.

>>> m = np.matrix('1 2 3 4; 5 6 7 8; 9 1 5 7')
>>> print(m)
[[1 2 3 4]
 [5 6 7 8]
 [9 1 5 7]]

В этом случае будет создан объект типа matrix.

>>> type(m)
<class 'numpy.matrixlib.defmatrix.matrix'>

Если вы уже работали с Numpy, это может для вас быть чем-то новым. В Numpy, как правило, приходится работать с объектами класса ndarray. Мы выбрали matrix из-за удобства объявления массива, т.к. matrix позволяет использование Matlab-подобный стиль, и, наверное, вам будет интересно познакомиться с чем-то новым. Для задач, рассматриваемых в рамках данной статьи, объекты matrix и ndarray одинаково хорошо подходят. Matix можно превратить в ndarray вот так:

>>> m = np.array(m)
>>> type(m)
<class 'numpy.ndarray'>

В любом случае наша таблица чисел будет выглядеть следующим образом.

Numpy matrix

Размерность массива

Для определения размерности массива Numpy используйте атрибут shape.

>>> m.shape
(3, 4)

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

Общие правила при работе с массивами Numpy

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

Вызов функции расчета статистики

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

>>> m.max()
9

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

>>> np.max(m)
9

Расчет статистик по строкам или столбцам массива

Вызовем функцию вычисления статистики (максимальный элемент) без аргументов.

>>> m.max()
9

В этом случает будут обработаны все элементы массива.

Numpy max for all elements

Если необходимо найти максимальный элемент в каждой строке, то для этого нужно передать в качестве аргумента параметр axis=1.

>>> m.max(axis=1)
matrix([[4],
        [8],
        [9]])

Numpy max for rows

Для вычисления статистики по столбцам, передайте в качестве параметра аргумент axis=0.

>>> m.max(axis=0)
matrix([[9, 6, 7, 8]])

Numpy max for cols

Функции (методы) для расчета статистик в Numpy

Ниже, в таблице, приведены методы объекта ndarray (или matrix), которые, как мы помним из раздела выше, могут быть также вызваны как функции библиотеки Numpy, для расчета статистик по данным массива.

Имя метода Описание
argmax Индексы элементов с максимальным значением (по осям)
argmin Индексы элементов с минимальным значением (по осям)
max Максимальные значения элементов (по осям)
min Минимальные значения элементов (по осям)
mean Средние значения элементов (по осям)
prod Произведение всех элементов (по осям)
std Стандартное отклонение (по осям)
sum Сумма всех элементов (по осям)
var Дисперсия (по осям)

Вычислим некоторые из представленных выше статистик.

>>> m.mean()
4.833333333333333
>>> m.mean(axis=1)
matrix([[2.5],
        [6.5],
        [5.5]])
>>> m.sum()
58
>>> m.sum(axis=0)
matrix([[15,  9, 15, 19]])

P.S.

Если вам интересна тема анализа данных, то мы рекомендуем ознакомиться с библиотекой Pandas. На нашем сайте вы можете найти вводные уроки по этой теме. Все уроки по библиотеке Pandas собраны в книге “Pandas. Работа с данными”.
Книга: Pandas. Работа с данными
<<<Библиотека Numpy. Использование boolean массива для доступа к ndarrayБиблиотека numpy. Работа с массивами. Слайсы>>>

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

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