Что выведет код Junior NumPy: массивы и векторизация обновлено
Broadcasting строки и столбца
Вопрос
Что выведет код? По строке на каждый print.
import numpy as np
row = np.array([1, 2, 3])
col = np.array([[10], [20]])
r = row + col
print(r.shape)
print(r.sum(axis=1).tolist())
Попробуйте сами
Напишите, что выведет код: каждый вывод с новой строки.
Показать ответ и разбор
Коротко
Код выведет: (2, 3), [36, 66]. Формы (3,) и (2, 1) выравниваются справа: (1, 3) и (2, 1) дают (2, 3).
Что выведет
(2, 3)
[36, 66]
Разбор
Формы (3,) и (2, 1) выравниваются справа: (1, 3) и (2, 1) дают (2, 3). Строки результата [11, 12, 13] и [21, 22, 23], суммы по axis=1 (вдоль строки) равны 36 и 66. Форма печатается как кортеж (2, 3).
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Ещё по теме «NumPy: массивы и векторизация»
- Что значит axis=0
- Broadcasting: форма результата
- Обрезка выбросов по перцентилям
- Скользящее среднее через cumsum
- Попарные расстояния через broadcasting
- Стандартизация столбцов матрицы (z-score)
- Запись float в целочисленный массив
- Fancy indexing возвращает копию