📅  最后修改于: 2023-12-03 15:40:13.372000             🧑  作者: Mango
在 NumPy 中,我们可以通过条件来查找数组中满足条件的元素,但有时候我们需要将不满足条件的元素修改为指定的值。下面介绍两种常用的替换方法。
numpy.where
函数可以根据给定的条件返回新的数组,其中满足条件的元素被替换为给定的值,不满足条件的元素保持不变。
import numpy as np
a = np.array([1, 2, 3, 4, 5])
b = np.where(a > 3, 0, a)
print(b) # [1 2 3 0 0]
上面的例子中,当 a
中的元素大于 3 时,b
中的对应元素被替换为 0。注意 np.where
函数返回的是一个新的数组。
另一种方法是使用 NumPy 的 boolean 索引,首先创建一个与原数组大小相同的布尔型数组,然后将不满足条件的元素赋值为指定的值。
import numpy as np
a = np.array([1, 2, 3, 4, 5])
mask = a <= 3
a[mask] = 0
print(a) # [0 0 0 4 5]
上面的例子中,我们先创建了一个布尔型数组 mask
,其中 mask[i]
的值为 True
当且仅当 a[i]
满足条件。然后我们将满足条件的元素赋值为指定的值。
以上是两种常用的替换不满足给定条件的 NumPy 数组元素的方法。值得注意的是,这些方法都会创建一个新的数组或修改原数组,因此需要根据具体情况选择合适的方法。