NumPy 函数

NumPy where() 函数根据条件返回从 x 或 y 中选择的元素。当仅提供条件时,函数返回给定数组中满足条件的元素的索引。

语法

numpy.where(condition, x, y) 

参数

condition必填。 指定条件。如果为 True,则产生 x,否则产生 y。
x, y可选。 指定要从中选择的 值。 x、y 和条件需要可广播到某种形状。

返回值

返回一个数组,其中包含来自条件为 True 的 x 的元素以及来自其他位置的 y 的元素。

示例:

在下面的示例中,where()函数用于将数组中的所有负数元素替换为 0。

import numpy as np

x = np.arange(-2, 5)

#将所有负数元素替换为0
y = np.where(x > 0, x, 0)

#显示x和y的内容
print("x contains:", x)
print("y contains:", y) 

上述代码的输出将是:

x contains: [-2 -1  0  1  2  3  4]
y contains: [0 0 0 1 2 3 4] 

示例:

在此示例中,where() 函数用于根据给定条件从两个数组中选择元素。

import numpy as np

x = np.asarray([[10, 20], [30, 40]])
y = np.asarray([[15, 15], [25, 25]])

#应用where条件
z = np.where(x > y, x, y)

#显示x、y、z的内容
print("x =")
print(x)
print("\ny =")
print(y)
print("\nz =")
print(z) 

上述代码的输出将是:

x =
[[10 20]
 [30 40]]

y =
[[15 15]
 [25 25]]

z =
[[15 20]
 [30 40]] 

示例:

当仅提供条件时,函数返回元素的索引满足条件的给定数组。考虑以下示例:

import numpy as np

x = np.asarray([10, 20, 30, 40, 50, 60])

#应用where条件
y = np.where(x > 35)

#显示结果
print("x =", x)
print("y =", y)
print("x[y] =", x[y]) 

上述代码的输出将是:

x = [10 20 30 40 50 60]
y = (array([3, 4, 5]),)
x[y] = [40 50 60] 

示例:

条件可以作为数组传递,如下所示出色地。考虑以下示例。

import numpy as np

x = np.asarray([[10, 20], [30, 40]])
y = np.asarray([[15, 15], [25, 25]])
cond = np.asarray([[True, True], [False, False]])

#应用where条件
z = np.where(cond, x, y)

#显示x、y、z的内容
print("x =")
print(x)
print("\ny =")
print(y)
print("\nz =")
print(z) 

上述代码的输出将是:

x =
[[10 20]
 [30 40]]

y =
[[15 15]
 [25 25]]

z =
[[10 20]
 [25 25]]