Вопросы по теме «NumPy: основы»

NumPy — фундамент для числовых вычислений в Python и основа pandas, scipy, sklearn. На собеседовании спрашивают про ndarray, broadcasting, векторизацию, индексирование массивов и разницу в производительности с чистым Python. Понимание NumPy показывает, что аналитик готов работать с данными эффективно.

Всего в этом разделе 20 вопросов. Каждый — с правильным ответом и кратким разбором теории. Разбито на 4 части по 5 вопросов.

Коллекции и структуры данныхГенераторы списков и встроенные функцииЦиклы и условияИсключения и отладкаРабота с файлами: JSON и CSVФункции и аргументыИтераторы и генераторыPandas и DataFrameСинтаксис и типы данных

Вопросы 15 из 20

1Какое значение вернёт `arr.shape`, если `arr = np.array([[1, 2, 3], [4, 5, 6]])`?
A(6,)
B(2, 3)
C(3, 2)
D(2,)
Ответ: `.shape` показывает размер массива по каждой оси: (строки, столбцы) для 2D.

`np.array([[...], [...]])` создаёт 2D `ndarray`, где внешний список — строки, а внутренние списки — элементы в строке. В примере 2 строки и 3 столбца, поэтому `arr.shape` будет (2, 3). Понимание `shape` важно для индексации/срезов и для broadcasting.

2Пусть `arr = np.array([[1, 2], [3, 4]])`. Что вернёт `np.sum(arr)` без указания `axis`?
AСкаляр 10
B`np.array([4, 6])`
C`np.array([3, 7])`
D`np.array([[1, 2], [3, 4]])`
Ответ: Без `axis` агрегация сворачивает все элементы в один скаляр.

Функции `np.sum()` и `np.mean()` без `axis` агрегируют по всем элементам массива. Это удобно, когда нужен общий итог (например, сумма всех продаж), но важно помнить: без `axis` вы теряете разбиение по строкам/столбцам.

3Пусть `arr = np.array([10, 20, 30, 40])`. Чему равен срез `arr[1:3]`?
A`np.array([10, 20])`
B`np.array([20, 30])`
C`np.array([20, 30, 40])`
DСкаляр 20
Ответ: Срез `arr[i:j]` берёт элементы с индекса `i` включительно до `j` не включительно.

В NumPy (как и в Python) верхняя граница среза не включается. Поэтому `arr[1:3]` берёт элементы с индексами 1 и 2: это 20 и 30. Понимание срезов важно для подготовки подвыборок и оконных признаков.

4Какой вызов создаст `ndarray` из нулей формы (7, 3) после `import numpy as np`?
A`np.zeros((7, 3))`
B`np.zeros(7, 3)`
C`np.zeros(7*3)`
D`np.array([0] * 21)`
Ответ: Для 2D массива форму передают как кортеж в `np.zeros((rows, cols))`.

`np.zeros((7, 3))` создаёт 2D массив нулей с 7 строками и 3 столбцами. Ошибка новичка — передать два аргумента вместо одного кортежа (`np.zeros(7, 3)`) или создать 1D массив длины 21 (`np.zeros(7*3)`). Понимание создания и формы — базовый навык работы с `ndarray`.

5Что вернёт `arr.shape`, если `arr = np.arange(6).reshape(2, 3)`?
A(6,)
B(2, 3)
C(3, 2)
D(2, 6)
Ответ: `.reshape(r, c)` меняет форму на (r, c), если число элементов совпадает.

`np.arange(6)` создаёт 1D массив из 6 элементов. Вызов `.reshape(2, 3)` переупаковывает эти 6 элементов в 2 строки и 3 столбца, поэтому `arr.shape` будет (2, 3). Это базовый навык работы с формой `ndarray`.

1234

Хотите тренировать интерактивно?

В приложении — таймер, прогресс, стрики и 1700+ вопросов по всем темам.

Тренировать в Telegram

Другие темы: Python

Коллекции и структуры данныхГенераторы списков и встроенные функцииЦиклы и условияИсключения и отладкаРабота с файлами: JSON и CSVФункции и аргументыИтераторы и генераторыPandas и DataFrameСинтаксис и типы данных