I want to assign zero to a 2d numpy matrix where for each row we have a cutoff column after which should be set to zero.
For example here we have matrix A of size 4x5 with cutoff columns [1,3,2,4]. What I want to do:
import numpy as np
np.random.seed(1)
A = np.random.rand(4, 5)
cutoff = np.array([1,3,2,4])
A[0, cutoff[0]:] = 0
A[1, cutoff[1]:] = 0
A[2, cutoff[2]:] = 0
A[3, cutoff[3]:] = 0
I could do it with np.repeat ing row indices and columns, but my matrix is so big I can't do that. Is there an efficient way to do this?