从索引数组替换数组中的元素

Replacing elements in an array from index array

我有两个二维数组,例如:

A=array[[4,5,6],
        [0,7,8],
        [0,9,0]]

B = array[[11,12,13],
          [14,15,16],
          [17,18,19]]

在元素值为 0 的数组 A 中,我想用 0 替换数组 B 中的相同值,并将更改后的矩阵存储在新变量中并保留旧的 B 矩阵。

提前致谢。

import numpy as np
A=np.array([[4,5,6],
    [0,7,8],
    [0,9,0]])

B =np.array([[11,12,13],
      [14,15,16],
      [17,18,19]])
C = B.copy()
B[A == 0] = 0
C, B = B, C

行 B[A == 0] 基本上首先通过行 A == 0 获取数组 A 为 0 的所有值。它 return 一个布尔数组,在数组 A 中值为零的位置为真。然后使用此布尔数组屏蔽数组 B 并将 0 分配给索引,布尔值为真。