I have a 3-dimensional array that I want to mask using a 2-dimensional array that has the same dimensions as the two rightmost of the 3-dimensional array. Is there a way to do this without writing the following loop?
import numpy as np nx = 2 nt = 4 field3d = np.random.rand(nt, nx, nx) field2d = np.random.rand(nx, nx) field3d_mask = np.zeros(field3d.shape, dtype=bool) for t in range(nt): field3d_mask[t,:,:] = field2d > 0.3 field3d = np.ma.array(field3d, mask=field3d_mask) print field2d print field3d
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With