Broadcasting
Правила автоматического «растягивания» форм при операциях.
Сигнатура
a + b (разные формы)Broadcasting позволяет применять операции к массивам разной формы без явного копирования данных. NumPy выравнивает формы справа налево: размеры совместимы, если они равны либо один из них равен 1 (он «растягивается»).
- Скаляр совместим с любым массивом.
- Строка
(3,)совместима с матрицей(2, 3). - Столбец
(2, 1)совместим со строкой(1, 3)— даёт(2, 3).
import numpy as np
A = np.array([[1, 2, 3], [4, 5, 6]])
row = np.array([10, 20, 30])
print(A + row) # [[11 22 33]
# [14 25 36]]
col = np.array([[100], [200]])
print(A + col) # [[101 102 103]
# [204 205 206]]