x y array :
xarr, yarr = array[0, :], array[1, :]
(2000), True, 1:
idx = mask[xarr, yarr].astype(bool)
mask[xarr, yarr] " " .
, ith idx mask[xarr[i], yarr[i]].
array:
result = array[:, idx]
import numpy as np
mask = np.random.randint(2, size=(500,500))
array = np.random.randint(500, size=(4, 2000))
xarr, yarr = array[0, :], array[1, :]
idx = mask[xarr, yarr].astype(bool)
result = array[:, idx]
cols = []
for i in range(2000):
current = array[:, i]
if mask[current[0], current[1]] > 0:
cols.append(i)
expected = array[:, cols]
assert np.allclose(result, expected)