Простой пример broadcasting при вычитании вектора из матрицы.
import numpy as np
# Матрица 2x3
A = np.array([[5, 10, 15],
[20, 25, 30]])
# Вектор длины 3
v = np.array([1, 2, 3])
# Вычитание вектора из каждой строки матрицы
B = A - v
print(B)Результат:
[[ 4 8 12]
[19 23 27]]
Объяснение:
A.shape=(2, 3)(shape)v.shape=(3,)(shape)- NumPy «растягивает» вектор
vпо первой оси, чтобы его форма стала(2, 3)логически, и выполняется поэлементное вычитание.
То есть каждая строка матрицы вычитается поэлементно с вектором.