我有
numpy
数组,其中包含随机数。例如像这样
[7 1 2 0 2 3 4 0 5]
我想同时替换每个数字,如果该数组中的数字= 7,我想将其替换为 2 ,如果数字= 2,则将其替换为 3 。所以它会像 [2 1 3 0 3 3 4 0 5]
。我已经尝试过 np.where
但无法更改其中任何一个。
如果您有多个条件,最好使用np.select:
a = np.array([7, 1, 2, 0, 2, 3, 4, 0, 5])
a = np.select([a == 7, a == 2], [2, 3], a)
[2 1 3 0 3 3 4 0 5]
Numpy 使用标准
==
运算符提供与标量的比较,这样 arr == v
返回一个布尔数组,通常称为掩码。屏蔽选择 arr[arr == v]
采用满足条件的 arr
的子集,因此此片段应该有效。
import numpy as np
arr = np.array([7, 1, 2, 0, 2, 3, 4, 0, 5])
arr[arr == 7] = 2
arr
array([2, 1, 2, 0, 2, 3, 4, 0, 5])