Олег Марков
Работа с данными NumPy Python
Введение
NumPy — ключевая библиотека Python для научных вычислений и работы с массивами. Она обеспечивает эффективное хранение и обработку больших наборов данных, поддерживает векторные операции, линейную алгебру и статистику.
В этой статье мы разберемся, как создавать и управлять массивами NumPy, работать с их элементами, выполнять математические и логические операции, использовать функции для анализа данных.
Если вы хотите детальнее изучить работу с массивами, матрицами и векторными операциями в Python — приходите на наш курс Основы Python. На курсе 209 уроков и 34 упражнения, AI-тренажеры для практики с кодом и задачами 24/7, решение задач с живым ревью наставника, еженедельные встречи с менторами.
Создание массивов NumPy
import numpy as np
# Одномерный массив
arr_1d = np.array([1, 2, 3, 4, 5])
# Двумерный массив
arr_2d = np.array([[1, 2, 3], [4, 5, 6]])
# Массив нулей и единиц
zeros = np.zeros((3, 3))
ones = np.ones((2, 4))
# Массив с равномерными значениями
range_arr = np.arange(0, 10, 2) # 0, 2, 4, 6, 8
# Массив с равномерным распределением
linspace_arr = np.linspace(0, 1, 5) # 0, 0.25, 0.5, 0.75, 1Индексация и срезы
NumPy позволяет легко получать доступ к элементам и подмассивам:
# Доступ к элементам
print(arr_1d[0]) # 1
print(arr_2d[1, 2]) # 6
# Срезы
print(arr_1d[1:4]) # [2 3 4]
print(arr_2d[:, 1]) # второй столбец [2 5]
# Булева индексация
mask = arr_1d > 3
print(arr_1d[mask]) # [4 5]Основные операции
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(a.mean()) # 2.0
print(b.sum()) # 15
print(b.max()) # 6Работа с многомерными массивами
matrix = np.array([[1, 2], [3, 4], [5, 6]])
# Транспонирование
print(matrix.T)
# Сумма по оси
print(matrix.sum(axis=0)) # по столбцам [9 12]
print(matrix.sum(axis=1)) # по строкам [3 7 11]Импорт данных и взаимодействие с Pandas
NumPy удобно использовать вместе с Pandas для анализа таблиц:
import pandas as pd
df = pd.DataFrame(matrix, columns=["A", "B"])
numpy_arr = df.to_numpy() # Преобразуем DataFrame в массив NumPyЧастые ошибки
- Попытка смешивать Python-списки и NumPy массивы без преобразования → неожиданные результаты.
- Неправильная размерность при операциях с многомерными массивами →
ValueError. - Булева индексация с неправильной формой маски →
IndexError.
Часто задаваемые вопросы
- Можно ли изменить размер массива?
arr = np.arange(6)
arr = arr.reshape((2, 3))- Как объединять массивы?
np.concatenate([a, b])
np.vstack([a, b])
np.hstack([a, b])- Как случайным образом инициализировать массив?
rand_arr = np.random.rand(3, 3) # равномерное распределение [0,1)- Можно ли копировать массив без ссылок на оригинал?
arr_copy = arr.copy()Заключение
NumPy предоставляет эффективные инструменты для работы с данными, включая создание массивов, доступ к элементам, выполнение операций и работу с многомерными структурами. Его интеграция с Pandas и другими библиотеками делает Python удобным языком для анализа и обработки данных.
Для системного изучения работы с массивами и данными Python рекомендую пройти курс Основы Python. В первых 3 модулях уже доступно бесплатное содержание — начните погружаться в мир Python прямо сегодня.
Постройте личный план изучения Python до уровня Middle — бесплатно!
Python — часть карты развития Backend
100+ шагов развития
30 бесплатных лекций
300 бонусных рублей на счет
Все гайды по Python
Лучшие курсы по теме

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