Ответ
NumPy (Numerical Python) — это фундаментальная библиотека для научных вычислений в Python. Её ядро — высокопроизводительный многомерный массив ndarray, над которым определены быстрые математические операции.
Ключевые преимущества:
- Производительность: Операции векторизованы и реализованы на C/Fortran, что исключает медленные циклы на Python.
- Удобный API: Компактный синтаксис для сложных операций с данными.
- Основа экосистемы: NumPy — базовый слой для Pandas, SciPy, Scikit-learn, Matplotlib.
Основные возможности:
- Создание и манипуляция массивами любой размерности.
- Векторизованные арифметические, логические и математические операции.
- Линейная алгебра: умножение матриц, разложения, определители.
- Статистика: вычисление среднего, медианы, дисперсии.
- Трансляция (broadcasting): Выполнение операций над массивами разной формы.
Практический пример:
import numpy as np
# Векторизованные операции вместо циклов
arr = np.array([1, 2, 3, 4, 5])
squares = arr ** 2 # [1, 4, 9, 16, 25]
conditional = arr[arr > 2] # [3, 4, 5] (маскирование)
# Линейная алгебра
matrix_a = np.random.rand(3, 3)
matrix_b = np.eye(3) # Единичная матрица
result = np.dot(matrix_a, matrix_b) # Умножение матриц
# Эффективные агрегации
large_array = np.random.randn(1000000)
mean_val = np.mean(large_array)
std_val = np.std(large_array)
Без NumPy работа с числовыми данными в Python была бы на порядки медленнее и менее выразительна.