Какое из сложений a + b вызовет ошибку broadcasting из-за несовместимых форм?
A
a формы (5,), b — скаляр (например, 2).B
a формы (2, 3), b формы (1, 3).C
a формы (3, 1), b формы (4,).D
a формы (2, 3), b формы (2,).Правильный ответ. Для broadcasting размеры должны совпадать или один из них должен быть 1 (сравнение идёт справа налево).
Разбор
Broadcasting сравнивает формы по осям справа налево. Для (2, 3) и (2,) сравниваются последние оси: 3 и 2 — они не равны и ни одна не равна 1, значит формы несовместимы и выражение a + b упадёт с ошибкой. Умение проверять совместимость форм экономит много времени при отладке.
Проверь себя · 1/3разбор после ответа
Какой вызов создаст
ndarray из нулей формы (7, 3) после import numpy as np?Ещё вопросы по теме «NumPy: основы»
- После `import numpy as np` вы сравниваете операции над Python `list` и NumPy `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: основы» →