将零有效地分配给2D numpy数组中每行的多个列

将零有效地分配给2D numpy数组中每行的多个列,numpy,matrix-indexing,numpy-indexing,Numpy,Matrix Indexing,Numpy Indexing,我想给一个2d numpy矩阵赋值零,其中每一行都有一个截断列,之后应该设置为零 例如,这里我们有一个大小为4x5的矩阵A,带有截断列[1,3,2,4]。 我想做的是: 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

我想给一个2d numpy矩阵赋值零,其中每一行都有一个截断列,之后应该设置为零

例如,这里我们有一个大小为4x5的矩阵A,带有截断列[1,3,2,4]。 我想做的是:

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
我可以用np.repeating行索引和列来实现,但我的矩阵太大了,我做不到。是否有一种有效的方法来执行此操作?

用于创建完整掩码并分配-

A[cutoff[:,None] <= np.arange(A.shape[1])] = 0
A[np.less_equal.outer(cutoff, range(A.shape[1]))] = 0