给定另一个 numpy 数组,用零替换 numpy.ndarray 的一些元素

Replace some elements of numpy.ndarray with zero given another numpy array

我需要知道以下情况的最有效方法。有一个形状为 11k*11k 的 numpy.ndarray,在给定形状为 11k 的二进制 numpy 数组的情况下,我需要强制某些行的所有元素为零。一个玩具示例可以描述如下:

输入:

x = np.array([[2, 1, 1, 2],
              [0, 2, 1, 0],
              [1, 0, 1, 1],
              [2, 2, 1, 0]])

ref = np.array([0, 1, 1, 0])

输出:

y = ([[0, 0, 0, 0],
       [0, 2, 1, 0],
       [1, 0, 1, 1],
       [0, 0, 0, 0]])

使用这个 -

y = np.multiply(x.T,ref).T
array([[0, 0, 0, 0],
       [0, 2, 1, 0],
       [1, 0, 1, 1],
       [0, 0, 0, 0]])