Пусть arr = np.array([[10, 20, 30], [40, 50, 60]]). Что вернёт выражение arr[:, 1]?
A
np.array([20, 50]): второй столбец, выбранный для всех строк через срез [:, 1]B
np.array([10, 40]): первый столбец с индексом 0, а не запрошенный второйC
np.array([30, 60]): третий столбец с индексом 2, а не запрошенный индекс 1D
np.array([[20], [50]]): форма 2x1 вместо одномерного результата arr[:, 1]Правильный ответ. Срез
arr[:, j] выбирает весь столбец j из 2D массива и возвращает 1D массив.Разбор
В записи arr[:, 1] двоеточие означает «все строки», а индекс 1 — второй столбец. Поэтому возвращается столбец [20, 50] как одномерный массив. Если хотелось получить первый столбец, нужно было бы написать arr[:, 0], а для третьего — arr[:, 2]. Срез по столбцу из 2D массива даёт 1D, а не 2D с формой (n, 1).
Проверь себя · 1/3разбор после ответа
После
import numpy as np вы сравниваете операции над списком Python list и массивом np.ndarray. Что верно для lst * 2 и arr * 2, где lst = [1, 2, 3], а arr = np.array([1, 2, 3])?Ещё вопросы по теме «NumPy: основы»
- После `import numpy as np` вы сравниваете операции над списком Python `list` и массивом `np.ndarray`. Что верно для `lst * 2` и `arr * 2`, где `lst = [1, 2, 3]`, а `arr = np.array([1, 2, 3])`?
- Какое значение вернёт `arr.shape`, если `arr = np.array([[1, 2, 3], [4, 5, 6]])`?
- Что будет результатом выражения `arr + 10`, если `arr = np.array([1, 2, 3])`?
- Пусть `x = np.array([[1, 2], [3, 4]])`. Чему равен результат `np.sum(x, axis=0)`?
- Вы считаете метрику по большому массиву чисел и выбираете NumPy вместо Python `list`. Почему операции вроде `arr * 1.1` на `ndarray` обычно быстрее, чем цикл `for` по `list`?
- Все вопросы по «NumPy: основы» →