当前位置: 首页>>编程示例 >>用法及示例精选 >>正文


Python NumPy where方法用法及代码示例

Numpy 的 where(~) 方法将布尔数组映射到指定的输出,类似于 if-else 的工作方式。

参数

1.condition | array_likebooleans

布尔值数组。

2. x | array_like

True 的所有实例都将替换为 x。

3. y | array_like

所有 False 实例都将被 y 替换。

返回值

一个 Numpy 数组。

例子

基本测绘

要将所有 True 替换为 5,将所有 False 替换为 10:

x = np.array([True, True, False, False])
np.where(x, 5, 10)



array([5, 5, 10, 10])

使用布尔掩码

更实际的是,where() 方法与布尔掩码配合使用效果很好。假设我们希望所有大于 2 的值均为 10,所有其他值均为 -1。

我们首先构建一个布尔掩码,如下所示:

x = np.array([1,2,3,4])
mask = x > 2
mask



array([False, False, True, True])

然后我们应用映射:

np.where(mask, 10, -1)



array([-1, -1, 10, 10])

根据数字替换值

假设我们想根据特定标准执行一些算术。例如,我们要对大于 2 的值加 5,否则减 5:

x = np.array([1,2,3,4])
np.where(x>2, x+5, x-5)



array([-4, -3, 8, 9])

多维数组

方法where(~)也可用于多维数组:

x = np.array([[1,2],[3,4]])
np.where(x>2, 10, 5)



array([[5, 5],
       [10, 10]])

相关用法


注:本文由纯净天空筛选整理自Isshin Inada大神的英文原创作品 NumPy | where method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。