Пусть a имеет форму (2, 3), а b = np.array([10, 20, 30]) имеет форму (3,). Какой будет форма результата a + b?

AБудет ошибка broadcasting из-за разных форм.
B(3,)
C(2, 3)
D(2,)
Правильный ответ. Вектор формы (3,) может транслироваться (broadcast) к каждой строке массива формы (2, 3).

Разбор

При broadcasting NumPy сравнивает размеры справа налево. Для (2, 3) и (3,) последняя ось совпадает (3), поэтому b «растягивается» на 2 строки и прибавляется к каждой строке a. Итоговая форма остаётся (2, 3).

Проверь себя · 1/3разбор после ответа
Пусть arr = np.array([10, 20, 30, 40]). Чему равен срез arr[1:3]?
Тренировать Python в Telegram

Ещё вопросы по теме «NumPy: основы»