使用索引数组在 numpy 矩阵中设置值

setting values in numpy matrix with array of indices

考虑一个 mxn 矩阵 A。我计算了每行最大值的索引,产生了一个维度为 m 的数组。

如何使用这个索引数组将每行中与 A 形状相同的第二个矩阵 B 中的值设置为 0。

示例:

     A = [[1,2] ,[3,4]] 

     np.argmax(A,1) --> [1,1]

     B = [[1,1] ,[1,1]] 

我想要:

  B = [[1 0] ,[1 0]] 

我该怎么做?

您可以使用:

B[np.arange(B.shape[0]),np.argmax(A,1)] = 0