I have a 2D numpy array with the shape (3024, 4032).
I have a 3D numpy array with the shape (3024, 4032, 3).
2D numpy array is filled with 0s and 1s.
<
Ok, I'll answer this to highlight one pecularity regarding "missing" dimensions. Lets' assume a.shape==(5,4,3)
and b.shape==(5,4)
When indexing, existing dimensions are left aligned which is why @Divakar's solution a[b == 0] = 0
works.
When broadcasting, existing dimensions are right aligned which is why @InvaderZim's a*b
does not work. What you need to do is a*b[..., None]
which inserts a broadcastable dimension at the right