Что такое библиотека NumPy?

«Что такое библиотека NumPy?» — вопрос из категории Pandas и NumPy, который задают на 26% собеседований Data Scientist / ML Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

NumPy (Numerical Python) — это фундаментальная библиотека для научных вычислений в Python. Её ядро — высокопроизводительный многомерный массив ndarray, над которым определены быстрые математические операции.

Ключевые преимущества:

  1. Производительность: Операции векторизованы и реализованы на C/Fortran, что исключает медленные циклы на Python.
  2. Удобный API: Компактный синтаксис для сложных операций с данными.
  3. Основа экосистемы: 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 была бы на порядки медленнее и менее выразительна.