Когда вы только начинаете писать код на Python, чаще всего используете обычные списки для хранения чисел. Но если данных становится много — например, нужно обработать миллионы строк из логов, посчитать статистику по датасету или выполнить матричные вычисления — списки быстро перестают справляться. Они работают медленно, занимают больше памяти и усложняют код.
В таких ситуациях на помощь приходит NumPy — библиотека, созданная специально для численных расчетов. Без NumPy не обходится ни машинное обучение, ни научные исследования, ни обработка изображений.
Разберем, для чего применяется модуль NumPy, как его установить и с чего начать работу.
Что такое библиотека NumPy
NumPy (сокращение от Numerical Python) — это библиотека, которая помогает удобно и быстро работать с числами. Это делает ее основным инструментом для расчетов в науке и инженерии.
NumPy появилась в середине 2000-х годов на основе проекта Numeric. Ее автор — Трэвис Олифант, один из активных участников сообщества Python. Идея заключалась в том, чтобы объединить несколько разрозненных подходов к обработке чисел в одну универсальную библиотеку.
Если сравнить массивы NumPy с обычными списками Python, они выигрывают сразу по нескольким параметрам:
Скорость. Все вычисления происходят быстрее — благодаря оптимизации на уровне C.
Возможности. NumPy поддерживает работу с матрицами, изменением формы и статистическими операциями.
Код. То, что в Python требует нескольких строк и циклов, в NumPy можно записать одной строкой.

NumPy применяют в задачах, где важно быстро и эффективно обрабатывать численные данные. Например:
при анализе пользовательских метрик и логов;
для предобработки данных в проектах машинного обучения;
в научных исследованиях и статистике;
при работе с изображениями, сигналами и координатами;
в инженерных и физических расчетах.
Даже если вы пока не планируете работать с большими датасетами, знание что такое NumPy пригодится уже на этапе первых задач по статистике или работе с таблицами.
Как установить NumPy
NumPy не входит в Python по умолчанию, поэтому перед использованием ее нужно установить отдельно. Есть несколько основных способов, как скачать NumPy.
1. Установка NumPy через pip
Это самый распространенный и универсальный вариант:
pip install numpy |
Команда скачает свежую стабильную версию NumPy package из официального репозитория PyPI и установит ее в текущее окружение. Убедитесь, что у вас установлен Python 3 — с Python 2 библиотека больше не работает.
2. Установка через терминал (Anaconda / Miniconda)
Если вы используете Anaconda или Miniconda, установите библиотеку через менеджер пакетов Conda:
conda install numpy |
В этом случае NumPy будет скачан из Conda Forge — альтернативного репозитория с предварительно собранными и оптимизированными пакетами.
Во многих сборках Anaconda NumPy уже есть. Проверить это можно командой:
conda list
3. Установка в Jupyter Notebook
Если вы работаете в Jupyter, а NumPy еще не установлена, можно сделать это прямо в ячейке, добавив ! перед командой:
!pip install numpy |
Или так, если вы используете Jupyter внутри Conda-среды:
!conda install numpy -y |
Команда !conda install может не работать в некоторых средах (например, Google Colab). В таких случаях лучше использовать pip.
Как подключить NumPy библиотеку в коде
После установки NumPy lib сразу готова к работе — можно подключать и использовать в коде. Это делается с помощью команды import, которая сообщает Python, что вы хотите использовать внешний модуль.
В профессиональном сообществе Python принято импортировать NumPy с коротким псевдонимом np — это удобно и сокращает запись кода:
import numpy as np |
Такое сокращение используется почти везде — так код получается короче, особенно при работе с массивами и формулами.
Подключение одинаково работает:
в обычных .py-файлах;
интерактивной оболочке Python;
Jupyter Notebook;
IDE вроде PyCharm или VS Code.
Чтобы убедиться, что библиотека подключена, можно сразу вывести ее версию:
print(np.__version__) |
Если при запуске возникает ошибка ModuleNotFoundError: No module named 'numpy', это означает, что NumPy не установлена в текущей среде. В этом случае нужно вернуться к установке.
Основной объект NumPy и его ключевые атрибуты
Перед тем как использовать функции библиотеки, разберемся, что является основным объектом в NumPy и как он устроен.
Основной тип данных в NumPy — массив ndarray. Это многомерная структура, в которой все элементы одного типа: целые, дробные или логические. Массивы занимают меньше памяти, чем списки Python, и работают быстрее. Поэтому с ними удобно обрабатывать большие объемы данных.
На практике чаще всего встречаются двумерные и трехмерные структуры. Двумерный массив можно представить как таблицу в Excel: строки и столбцы с числами. Трехмерный — как стопку таких таблиц, уложенных одна на другую.

У каждого массива есть свойства — они называются атрибутами. С их помощью можно узнать, сколько в массиве данных, какого они типа и как они расположены.
Вот основные атрибуты:
shape — размер массива. Например, (3, 4) означает 3 строки и 4 столбца.
ndim — число измерений: 1, 2, 3 и так далее.
size — общее количество элементов. Например, в массиве 3×4 — 12 значений.
dtype — тип данных. Это может быть int, float, bool и другие. Все элементы в массиве одного типа.
itemsize — сколько байт занимает один элемент в памяти.
Например, если вы загружаете таблицу с данными из Excel, важно сразу понять, сколько в ней строк и столбцов и все ли значения — числа. Если в массиве случайно окажется строка, многие расчеты могут не сработать. Атрибуты массива позволяют быстро это проверить и избежать ошибок.
Такая структура полезна в аналитике, машинном обучении, работе с графиками и любых задачах, где важна точность и скорость обработки данных.
Основные функции и методы библиотеки NumPy
Библиотека содержит сотни функций, но в повседневной практике чаще всего используются несколько ключевых групп: создание массивов, изменение их формы, выполнение математических операций, расчет статистик, фильтрация и линейная алгебра.

Создание массивов NumPy
NumPy помогает быстро создавать массивы нужной формы и наполнения.
Для преобразования готового списка или кортежа используют np.array().
Если нужны массивы, заполненные одинаковыми значениями, подойдут:
np.zeros() — массив из нулей;
np.ones() — массив из единиц.
Для генерации последовательностей чисел:
np.arange() — создает числа с заданным шагом;
np.linspace() — создает равномерно распределенные значения между границами.
Такие функции полезны, например, при подготовке тестовых данных, создании координат для построения графиков или формировании исходных матриц в моделировании.
Изменение формы массива
Когда данные уже есть, часто нужно изменить их структуру. Например, превратить одномерный список в таблицу или объединить несколько массивов в один.
Для этого в NumPy есть функции:
reshape() — задание новой формы;
flatten() и ravel() — разворачивание в одномерный массив;
transpose() или .T — поменять местами строки и столбцы.
Это особенно полезно при обработке таблиц, изображений или данных из CSV-файлов.
Математические операции
NumPy поддерживает быстрые поэлементные вычисления. Если сложить два массива одинаковой формы, операция пройдет сразу по всем элементам.
Можно выполнять:
обычные арифметические операции: +, -, *, /;
агрегирующие функции: np.sum(), np.mean(), np.max(), np.min();
округление, корни, модули: np.round(), np.sqrt(), np.abs();
умножение матриц — с помощью np.dot() или специального оператора @ (как в математике).
Такие операции широко используются в аналитике, обработке сигналов и работе с таблицами данных.
Статистика и фильтрация
NumPy помогает выбирать нужные значения из массива по условию — это называется логическая индексация.
data = np.array([5, -3, 7, 0]) positive = data[data > 0] print(positive) # [5 7] |
Можно рассчитывать:
стандартное отклонение — np.std();
медиану — np.median();
уникальные значения — np.unique();
процентили — np.percentile().
Такие функции помогают анализировать массивы: фильтровать шумы, находить тренды, убирать выбросы.
Линейная алгебра
NumPy включает модуль linalg, в котором собраны инструменты для работы с матрицами:
np.linalg.inv() — обратная матрица;
np.linalg.det() — определитель;
np.linalg.solve() — решение системы уравнений;
np.linalg.eig() — собственные значения и векторы.
Эти функции нужны в машинном обучении и инженерных задачах.
Примеры базового использования NumPy
Чтобы лучше понять, как работать с NumPy, разберем несколько простых примеров. Они охватывают типовые задачи, которые встречаются в аналитике, программировании и обработке данных.

Пример 1. Создание массива и базовые операции NumPy
Допустим, у нас есть набор температур за неделю, и мы хотим найти среднюю.
import numpy as np temps = np.array([18.5, 20.1, 19.8, 21.0, 22.3, 20.4, 19.9]) mean_temp = np.mean(temps) print(mean_temp) # 20.285714285714285 |
Такой код удобен, когда нужно быстро обработать данные без ручного перебора.
Пример 2. Работа с двумерными массивами
Допустим, у нас есть таблица продаж по дням и магазинам:
sales = np.array([ [150, 200, 175], [180, 210, 160], [190, 220, 185] ]) |
Здесь строки — это дни, а столбцы — магазины.
Посчитаем суммарные продажи по каждому магазину:
totals = np.sum(sales, axis=0) print(totals) # [520 630 520] |
Параметр axis=0 указывает, что нужно суммировать вдоль строк — то есть взять сумму по каждому столбцу.
Пример 3. Индексация и фильтрация
Иногда нужно отфильтровать массив по определенному условию — например, выбрать только положительные числа:
data = np.array([3, -1, 7, 0, -5, 4]) positive = data[data > 0] print(positive) # [3 7 4] |
Такой прием часто используют в анализе данных — например, чтобы исключить нули, отрицательные значения или аномалии.
Пример 4. Изменение формы массива
Иногда нужно изменить форму массива — например, превратить одномерный набор чисел в таблицу. Для этого используется метод reshape():
import numpy as np arr = np.arange(12) # создаём массив от 0 до 11 table = arr.reshape(3, 4) # 3 строки, 4 столбца print(table) |
Результат:
[[ 0 1 2 3] [ 4 5 6 7] [ 8 9 10 11]] |
Здесь reshape(3, 4) означает, что массив будет представлен в виде таблицы размером 3×4. Общее число элементов должно совпадать (в данном случае: 3×4 = 12).
Советы и рекомендации для начинающих
Работа с NumPy кажется простой, но есть ряд нюансов, на которые стоит обратить внимание. Вот несколько практических советов, которые помогут избежать типичных ошибок и использовать библиотеку эффективно.
Как избежать типичных ошибок
1. Не путайте список Python и массив NumPy
Функции NumPy работают корректно только с массивами ndarray. Если вы передаете обычный список, некоторые операции могут не сработать или дать некорректный результат. sum([1, 2, 3]) # встроенная функция Python → результат: 6 np.sum([1, 2, 3]) # NumPy тоже посчитает сумму, но сначала преобразует список в массив np.sum(np.array([1, 2, 3])) # правильно: явно передаем массив |
2. Обратите внимание на тип данных — они должны быть одинаковыми. (dtype)
NumPy-массивы хранят все значения одного типа. Если случайно добавить строку, весь массив может превратиться в строки — и математические операции перестанут работать.
import numpy as np arr = np.array([1, 2, '3']) print(arr) # ['1' '2' '3'] print(arr + 1) # ошибка: нельзя прибавить число к строке |
3. Изменение формы — только если размер совпадает
При использовании reshape() размер массива до и после должен быть одинаковым. Иначе возникнет ошибка.
arr = np.arange(6) arr.reshape(2, 3) # правильно arr.reshape(3, 3) # ошибка: нельзя уместить 6 элементов в 3×3 |
Особенности производительности и векторизация
NumPy помогает не писать циклы вручную — вместо них сразу работает с целым массивом.
Пример:
a = np.array([1, 2, 3]) b = np.array([4, 5, 6]) c = a + b # [5 7 9] |
В обычном Python пришлось бы использовать цикл for.
c = [] for i in range(len(a)): |
Почему NumPy работает быстрее:
операции написаны на языке C и выполняются на низком уровне;
данные хранятся в непрерывной области памяти;
нет лишней интерпретации Python в каждой итерации.
Такая оптимизация особенно заметна на больших массивах и при сложных вычислениях.
Совместимость с другими библиотеками
NumPy часто используется вместе с другими инструментами в экосистеме Python:
Pandas — для работы с таблицами. Внутри Pandas используется NumPy.
Matplotlib — для построения графиков. Принимает NumPy-массивы.
SciPy — расширяет NumPy: оптимизация, статистика, интерполяция.
Scikit-learn — алгоритмы машинного обучения. Все входные данные — NumPy-массивы.
Если вы собираетесь заниматься анализом данных, визуализацией, машинным обучением или математическим моделированием — использование NumPy станет отправной точкой. На ней построено много других библиотек в экосистеме Python.
Заключение
NumPy — базовый инструмент для работы с числовыми данными. Он помогает писать быстрый и понятный код, легко работать с массивами и решать прикладные задачи в самых разных сферах.
Для тех, кто хочет углубить знания в Python и научиться применять их в разных сферах — от анализа данных до автоматизации процессов — важна программа обучения, сочетающая теорию и практику.
В ProductStar обучение строится так, чтобы каждый новый инструмент сразу закреплялся на реальных задачах: разборы кейсов, выполнение проектов, работа с настоящими наборами данных. Такой формат помогает применять знания в рабочих сценариях — от построения аналитических моделей до разработки программных решений. С актуальными курсами и направлениями можно ознакомиться в каталоге курсов на сайте ProductStar.