import numpy as np
A=np.array([[4,5,6],
[0,7,8],
[0,9,0]])
B =np.array([[11,12,13],
[14,15,16],
[17,18,19]])
C = B.copy()
B[A == 0] = 0
C, B = B, C
Строка B [A == 0] в основном сначала получает все значения, где массив A равен 0, по строке A == 0.Он возвращает логический массив со значением true в позиции, где значение равно нулю в массиве A. Затем этот логический массив используется для маскирования массива B и присваивает 0 индексам, логические значения равны True.