根据掩码将 numpy 数组替换为另一个数组

时间:2021-04-08 19:51:09

标签: python arrays numpy mask

我有两个 numpy 数组 AB 以及一个布尔值 (True/False) 的掩码 mask,它们的维度都相同。我想将 A 中的元素替换为 B 中的元素,其中 mask 的对应元素是 True;其中 mask 的对应元素是 False 我想保留 A 的原始元素。我该怎么做?

示例:

# Input
A = np.arange(9).reshape(3,3)
B = A*10
mask = np.array([[True, True, False], [False, True, False], [False, False, True]])

# Output
desired_output = np.array([[0, 10, 2], [3, 40, 5], [6, 7, 80]])

2 个答案:

答案 0 :(得分:2)

简单地说:

let invalidBlocks = []

Object.entries(blocks).forEach([key, value] => {
  if (!value) {
    invalidBlocks.push(key)
  }
})

In [54]: A[mask]=B[mask] In [55]: A Out[55]: array([[ 0, 10, 2], [ 3, 40, 5], [ 6, 7, 80]]) 也有效。

答案 1 :(得分:0)

试试 date1 = DateTime.Now; _dbContext.Database.OpenConnection(); date2 = DateTime.Now; if (_logger != null) { interval = date2 - date1; _logger.LogDebug(string.Format("GetUserDetails Opened Connection {0:N0}", interval.TotalMilliseconds)); }

map
相关问题