x = np.array([[1, 2], [3, 4]]). Чему равен результат np.sum(x, axis=0)?NumPy — фундамент для числовых вычислений в Python и основа pandas, scipy, sklearn. На собеседовании спрашивают про ndarray, broadcasting, векторизацию, индексирование массивов и разницу в производительности с чистым Python. Понимание NumPy показывает, что аналитик готов работать с данными эффективно.
Всего в этом разделе 20 вопросов. Каждый — с правильным ответом и кратким разбором теории. Разбито на 4 части по 5 вопросов.
Запись `np.array([[...], [...]])` создаёт двумерный массив, где внешний список — строки, а внутренние списки — элементы внутри строки. Здесь 2 строки по 3 элемента, поэтому `arr.shape` равен `(2, 3)`. Понимание формы массива нужно для индексации, срезов и согласования размеров при поэлементных операциях.
Подробный разбор →При вызове `np.sum(arr)` без `axis` NumPy перемножает ничего и просто складывает все элементы между собой: `1 + 2 + 3 + 4 = 10`. С `axis=0` сумма берётся по столбцам и даёт `np.array([4, 6])`, а с `axis=1` — по строкам, итог `np.array([3, 7])`. `np.array([1, 2, 3, 4])` — это плоское представление исходных значений, его дал бы `arr.ravel()`, а не агрегация.
Подробный разбор →В NumPy (как и в Python) верхняя граница среза не включается. Поэтому `arr[1:3]` берёт элементы с индексами 1 и 2: это 20 и 30. Понимание срезов важно для подготовки подвыборок и оконных признаков.
Подробный разбор →`np.zeros((7, 3))` создаёт двумерный массив нулей с 7 строками и 3 столбцами — форма передаётся одним кортежем. Частая ошибка новичка — передать два аргумента вместо кортежа (`np.zeros(7, 3)`) или создать одномерный массив длины 21 (`np.zeros(7*3)`). Создание массива через `np.array([0] * 21)` тоже даёт одномерный список, а не нужную форму (7, 3).
Подробный разбор →`np.arange(6)` создаёт одномерный массив из 6 элементов. Вызов `.reshape(2, 3)` переупаковывает эти 6 элементов в 2 строки и 3 столбца, поэтому `arr.shape` будет (2, 3). Это базовый навык работы с формой массива в `numpy`. Вариант (3, 2) — это форма массива той же длины, но с другими размерами осей; вариант (2, 6) предполагает 12 элементов, что не соответствует исходной длине.
Подробный разбор →В приложении — таймер, прогресс, стрики и 1700+ вопросов по всем темам.
Тренировать Python в Telegram