Что такое NumPy и зачем он нужен?

Читать в полной версии →

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

Зачем аналитику данных NumPy?

Количество данных постоянно растет: в 2010 году было всего 2 Збайт, в 2020 — более 64 Збайт, а в 2025 этот объем может превысить 180 Збайт. Аналитикам данных приходится работать с весьма объемными массивами. Для этого создали инструменты, которые позволяют быстрее обрабатывать данные или проводить вычисления. Например, одна из первых библиотек для Python, Numeric, всё еще доступна и стабильно работает. Однако она медленно обрабатывает большие данные.

NumPy, или Numerical Python, решает эту задачу: она быстро работает с многомерными массивами. Во-первых, NumPy написана частично на Python (интерпретируемом языке) и частично на C и С++ (компилируемых языках программирования). Последние использовали именно там, где важна скорость, ведь благодаря компиляторам вычисления на C и С++ быстрее, чем на интерпретируемых языках.

Во-вторых, NumPy работает только с массивами из однородных элементов, например только с целыми или только с дробными числами. Это позволяет увеличить скорость вычислений до 50 раз и сократить время обработки данных, поскольку аналитику не нужно приводить типы данных к единому виду и обрабатывать их. Еще NumPy работает только с массивами одного типа. Массивы могут быть одномерными, двухмерными, трехмерными и так далее.

Одномерный массив

Поскольку количество осей массива не ограничено, их часто обозначают переменной N. Поэтому обычно говорят, что NumPy работает с N-мерными массивами данных. Массив создается с помощью функции array. В нее кладется Python-список, который нужно создать. Пример одномерного массива можно найти выше. Двухмерный будет состоять из двух одномерных, а трехмерный — из двух двухмерных.

Двухмерный массив

При создании массива в NumPy можно указать тип данных с помощью dtype. Эту функцию можно использовать, только если переменные варьируются от -32 768 до 36 767, иначе значения обнулятся и отсчет начнется заново.

Применение функции dtype

Базовый функционал NumPy для аналитиков данных

Рассказываем про базовый функционал NumPy, который позволит быстро работать с N-мерными массивами данных. Например, с помощью функции ndim можно узнать количество измерений в массиве, shape показывает количество строк и столбцов, а size — количество элементов. itemsize отображает количество байт, которое занимает один элемент, а nbytes — весь массив.

Допустим, в NumPy создан такой массив:

Система покажет следующие значения при запуске функций ndim, shape и size:

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

Вычислительные операции в NumPy

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

При запуске функции получится такой результат:

Аналогично можно вычитать, умножать, делить.

Еще в NumPy можно делать срез массива (индексировать его) или агрегировать данные: вычислять минимальное и максимальное значения, сумму, среднее значение и стандартное отклонение.

Преимущества NumPy для аналитиков данных

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