У вас матрица признаков X формы (1000, 3). Вы делаете центрирование столбцов: X_centered = X - X.mean(axis=0). Почему это работает без цикла for?

AПотому что X.mean(axis=0) возвращает матрицу формы (1000, 3), равную X.
BПотому что X.mean(axis=0) возвращает одно число, которое вычитается из всех элементов.
CПотому что X.mean(axis=0) меняет X на месте, и вычитание ничего не делает.
DПотому что X.mean(axis=0) возвращает вектор формы (3,), и broadcasting вычитает его из каждой строки X.
Правильный ответ. Broadcasting позволяет применять вектор (например, средние по столбцам) ко всем строкам матрицы.

Разбор

При axis=0 среднее считается по строкам для каждого столбца, поэтому X.mean(axis=0) имеет форму (3,). NumPy умеет вычитать этот вектор из матрицы формы (1000, 3) по правилу broadcasting: вектор «растягивается» на все строки. Это типичный приём нормализации признаков в аналитике.

Проверь себя · 1/3разбор после ответа
Есть матрица продаж sales формы (12, 5): строки — месяцы, столбцы — продукты. Как получить сумму продаж по каждому продукту за все месяцы?
Тренировать Python в Telegram

Ещё вопросы по теме «NumPy: основы»