Пусть arr = np.array([[1, 2], [3, 4]]). Что вернёт np.sum(arr) без указания оси (axis)?
AСкалярное значение
10BМассив
np.array([4, 6])CМассив
np.array([3, 7])DМассив
np.array([1, 2, 3, 4])Правильный ответ.
np.sum без axis сворачивает массив по всем осям и возвращает один общий итог как скаляр.Разбор
При вызове 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(), а не агрегация.
Проверь себя · 1/3разбор после ответа
Пусть
m = np.array([[1, 2, 3], [4, 5, 6]]). Чему равен np.mean(m, axis=1)?Ещё вопросы по теме «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: основы» →