numpy.where()用法详解
在Numpy中,numpy.where()函数是一个非常有用的函数,它可以根据指定的条件返回一个新的数组,或者根据指定的条件替换原始数组中的元素。本文将详细介绍numpy.where()函数的用法。
语法
numpy.where(condition, x, y)
参数说明:
- condition:一个布尔型数组,用于指定条件。
- x:一个数组,用于指定条件为True时的返回值。
- y:一个数组,用于指定条件为False时的返回值。
示例一:根据条件返回新的
import numpy as np
# 创建一个一维数组
a = np.array([1, 2, 3, 4, 5])
# 根条件返回新的数组
b = np.where(a > 3, a, 0)
# 打印结果
print(b)
在上面的示例中,我们首先使用np.array()函数创建了一个一维数组a,然后使用np.where()函数根据条件a > 3返回了一个新的数组b,其中条件为True的元素保留,条件为False的元素替换为0。最后,使用print()函数打印了结果。
输出结果:
[0 0 0 4 5]
示例二:替换原始数组中的元素
import numpy as np
# 创建一个一维数组
a = np.array([1, 2, 3, 4, 5])
# 替换原始数组中的元素
np.where(a > 3, -1, a, out=a)
# 打印结果
print(a)
在上面的示例中,我们首先使用np.array()函数创建了一个一维数组a,然后使用np.where()函数根据条件a > 3替换了原始数组中的元素,其中条件True的元素替换为-1,条件为False的元素保留不变。最后,使用print()函数打印了结果。
输出结果:
[ 1 2 3 -1 -1]
注意事项
- 当x和y参数都没有指定时,np.where()函数将返回一个元素为True的索数组。
- 当x和y参数都指定时,np.where()函数将返回一个新的数组,其中条件为True的元素来自x数组,条件False的元素来自y数组。
- 当只有x参数指定时,np.where()函数将返回一个元素为True的索引数组,其中True的位置对应于x数组中的元素。
- 当只有y参数指定时,np.where()函数返回一个元素为True的索引数组,其中True的位置对应于y数组中的元素。
综上所述,numpy.where()函数是一个非有用的函数,可以根据指定的条件返回一个新的数组,或者根据指定的条件替换原始数组中的元素。在实际应用中,可以根据具体的求选择不同的用法。