NumPy — фундамент для числовых вычислений в Python и основа pandas, scipy, sklearn. На собеседовании спрашивают про ndarray, broadcasting, векторизацию, индексирование массивов и разницу в производительности с чистым Python. Понимание NumPy показывает, что аналитик готов работать с данными эффективно.
В 2D массиве `axis=0` означает агрегацию «вниз по строкам», результат — по каждому столбцу. Для `x = [[1, 2], [3, 4]]` суммы по столбцам равны 1+3 и 2+4, то есть `np.array([4, 6])`. Понимание `axis` критично для корректных метрик.
Подробный разбор →В записи `arr[:, 1]` двоеточие `:` означает «все строки», а индекс 1 означает второй столбец. Поэтому возвращается столбец `[20, 50]` как 1D `ndarray`. Это базовый навык индексации/срезов для аналитических матриц признаков.
Подробный разбор →При `axis=0` среднее считается по строкам для каждого столбца, поэтому `X.mean(axis=0)` имеет форму (3,). NumPy умеет вычитать этот вектор из матрицы формы (1000, 3) по правилу broadcasting: вектор «растягивается» на все строки. Это типичный приём нормализации признаков в аналитике.
Подробный разбор →Broadcasting сравнивает формы по осям справа налево. Для (2, 3) и (2,) сравниваются последние оси: 3 и 2 — они не равны и ни одна не равна 1, значит формы несовместимы и выражение `a + b` упадёт с ошибкой. Умение проверять совместимость форм экономит много времени при отладке.
Подробный разбор →Форма (3, 1) означает «3 строки и 1 столбец». При сложении с вектором (4,) NumPy приводит формы справа налево: (3, 1) и (4,) становятся совместимыми как (3, 1) и (1, 4), после чего broadcasting даёт результат (3, 4). Это полезно для построения «сетки» значений без циклов.
Подробный разбор →В приложении — таймер, прогресс, стрики и 1700+ вопросов по всем темам.
Тренировать Python в Telegram