Что будет результатом выражения arr + 10, если arr = np.array([1, 2, 3])?
AОшибка типов: прибавить скаляр к массиву можно только через явный цикл
B
[1, 2, 3, 10]: число 10 дописывается в конец массива как новый элементC
np.array([11, 12, 13]): скаляр 10 прибавляется к каждому элементу через broadcastingDСкаляр
16: массив сворачивается в сумму элементов и прибавляется к скаляруПравильный ответ. При
broadcasting скаляр применяется ко всем элементам массива поэлементно.Разбор
broadcasting в NumPy позволяет выполнять операции между массивом и скаляром без явного цикла. В выражении arr + 10 число 10 «растягивается» до формы массива и прибавляется к каждому элементу, что даёт np.array([11, 12, 13]). Это базовый приём векторных вычислений и одна из причин, почему numpy быстрее обычных списков.
Проверь себя · 1/3разбор после ответа
У вас два массива:
a = np.array([1, 2, 3]) и b = 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]])`?
- Пусть `x = np.array([[1, 2], [3, 4]])`. Чему равен результат `np.sum(x, axis=0)`?
- Вы считаете метрику по большому массиву чисел и выбираете NumPy вместо Python `list`. Почему операции вроде `arr * 1.1` на `ndarray` обычно быстрее, чем цикл `for` по `list`?
- Что вернёт `arr.shape`, если `arr = np.arange(6).reshape(2, 3)`?
- Все вопросы по «NumPy: основы» →