NumPy — базовый инструмент в Python для машинного обучения. Именно на массивах NumPy держатся векторизация, быстрая обработка данных и большинство вычислений в линейной алгебре. Если понимать матричные операции, проще разбираться в работе линейной регрессии, градиентного спуска, PCA и нейросетей.
Почему NumPy важен для ML
NumPy использует многомерные массивы ndarray и выполняет операции быстрее обычных списков Python. Главная причина — векторизация: вычисления идут сразу над целыми массивами, без медленных циклов.
import numpy as np
x = np.array([1, 2, 3])
y = np.array([4, 5, 6])
print(x + y) # [5 7 9]
print(x * y) # [4 10 18]
Форма массива: shape
(n,)— вектор(m, n)— матрица(batch, features)— частый формат датасета
X = np.array([[1, 2], [3, 4], [5, 6]])
print(X.shape) # (3, 2)
Ошибка в размерностях — одна из самых частых причин багов в моделях.
Матричные операции
Поэлементное умножение и матричное умножение — не одно и то же.
A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])
print(A * B) # поэлементно
print(A @ B) # матричное умножение
print(np.dot(A, B)) # аналог для 2D
В ML матричное умножение используется постоянно: y = X @ w + b
Где:
X— признакиw— весаb— смещениеy— предсказание
Транспонирование
Меняет строки и столбцы местами. Часто нужно в формулах линейной регрессии и при вычислении градиентов.
print(A.T)
Полезные функции линейной алгебры
A = np.array([[2, 1], [1, 3]])
print(np.linalg.inv(A)) # обратная матрица
print(np.linalg.det(A)) # определитель
print(np.linalg.eig(A)) # собственные значения и векторы
print(np.linalg.norm(A)) # норма
Где это применяется:
inv— аналитические решения, но в ML чаще избегают явного обращения матрицыeig— PCA, спектральные методыnorm— расстояния, регуляризация, оценка ошибок
Broadcasting
Одна из самых мощных возможностей NumPy — автоматическое расширение размерностей.
X = np.array([[1, 2], [3, 4], [5, 6]])
b = np.array([10, 20])
print(X + b)
Это удобно для добавления смещения, нормализации и масштабирования признаков без циклов ⚙️
Что важно для практики
- Используйте
@для матричного умножения - Проверяйте
shapeперед вычислениями - Предпочитайте векторизацию вместо
for - Для ML полезно знать
transpose,dot,mean,sum,norm,linalg
NumPy — это не просто библиотека для массивов, а язык математики в ML. Понимание матриц, размерностей и линейной алгебры напрямую влияет на то, насколько быстро вы начнёте читать код моделей и писать свой без лишних ошибок 🚀
Подборка каналов про IT — хороший способ следить за Python, ML, backend и карьерой в разработке 📚