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]]