📌  相关文章
📜  替换不满足给定条件的 NumPy 数组元素(1)

📅  最后修改于: 2023-12-03 15:40:13.372000             🧑  作者: Mango

替换不满足给定条件的 NumPy 数组元素

在 NumPy 中,我们可以通过条件来查找数组中满足条件的元素,但有时候我们需要将不满足条件的元素修改为指定的值。下面介绍两种常用的替换方法。

1. numpy.where 函数

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 函数返回的是一个新的数组。

2. NumPy boolean 索引

另一种方法是使用 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 数组元素的方法。值得注意的是,这些方法都会创建一个新的数组或修改原数组,因此需要根据具体情况选择合适的方法。