Олег Марков
NumPy в Python — основы и применение в задачах
Введение
NumPy — это одна из ключевых библиотек Python для работы с числовыми данными и массивами. Она предоставляет высокопроизводительные структуры данных и функции для выполнения математических и статистических операций. Знание NumPy важно для анализа данных, машинного обучения и научных вычислений. В этой статье мы разберемся с основами библиотеки NumPy, создадим массивы и рассмотрим практические примеры применения.
Основные структуры данных NumPy
Главный объект библиотеки — массив NumPy (ndarray). Он отличается от стандартного списка Python высокой производительностью и удобными методами работы с многомерными данными.
import numpy as np
# Создание одномерного массива
arr = np.array([1, 2, 3, 4, 5])
print(arr)Массивы поддерживают операции над всеми элементами одновременно (vectorization), что делает вычисления быстрее по сравнению со стандартными циклами Python.
Индексация и срезы
NumPy позволяет получать доступ к элементам массивов и подмассивам:
# Доступ к элементу
print(arr[2]) # 3
# Срез
print(arr[1:4]) # [2 3 4]Для многомерных массивов (2D, 3D) применяется аналогичная логика с использованием запятых для разделения осей:
matrix = np.array([[1,2,3],[4,5,6],[7,8,9]])
print(matrix[0, 1]) # 2
print(matrix[:, 0]) # [1 4 7]NumPy упрощает работу с массивами и операциями над ними. Чтобы глубже освоить применение массивов, матриц и векторизации для практических задач на Python, полезно пройти курс Основы Python. На курсе 209 уроков, 34 упражнения, AI-тренажёры для практики 24/7, решение задач с живым ревью наставника и еженедельные встречи с менторами.
Основные операции с массивами
NumPy поддерживает арифметические операции над массивами:
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
print(a + b) # [5 7 9]
print(a * b) # [ 4 10 18]
print(a ** 2) # [1 4 9]Также доступны агрегирующие функции:
print(np.sum(a)) # 6
print(np.mean(b)) # 5.0
print(np.max(b)) # 6Эти операции работают на всех элементах массивов без необходимости использования циклов, что значительно ускоряет вычисления.
Создание массивов и функций
NumPy предоставляет функции для генерации массивов:
np.zeros((3,3))— массив из нулейnp.ones((2,4))— массив из единицnp.arange(0, 10, 2)— массив с диапазоном и шагомnp.linspace(0,1,5)— массив с равномерным распределением элементов
Пример:
matrix = np.zeros((3,3))
print(matrix)Частые ошибки
- Использование стандартных списков Python вместо массивов для больших данных.
- Ошибки при указании формы массивов (
shape). - Попытка выполнять операции над массивами разных размеров без приведения размеров.
- Игнорирование преимуществ векторизации и написание лишних циклов.
Частозадаваемые вопросы
Почему NumPy быстрее списков Python? Массивы NumPy используют эффективное хранение в памяти и векторизированные операции.
Можно ли изменять массив после создания? Да, элементы и форму массива можно изменять, но нужно учитывать совместимость размеров.
Как создавать многомерные массивы?
С помощью вложенных списков при создании np.array() или функций np.zeros, np.ones.
NumPy подходит для машинного обучения? Да, большинство библиотек машинного обучения (Pandas, Scikit-learn, TensorFlow) используют NumPy для работы с данными.
Заключение
NumPy в Python — мощный инструмент для работы с массивами и числовыми данными, упрощающий вычисления и обработку больших объёмов информации. Использование массивов и векторизации ускоряет обработку данных и делает код более лаконичным. Для закрепления навыков работы с массивами и изучения дополнительных возможностей Python рекомендуем курс Основы Python. В первых 3 модулях курса доступно бесплатное содержание, что позволяет сразу применять массивы на практике и понять структуру курса до полного изучения.
Постройте личный план изучения Python до уровня Middle — бесплатно!
Python — часть карты развития Backend
100+ шагов развития
30 бесплатных лекций
300 бонусных рублей на счет
Все гайды по Python
Лучшие курсы по теме

Основы Python
Антон Ларичев
Nest.js с нуля
Антон Ларичев