Numpy where函数详解
Numpy 是Python中用于高性能科学计算的库,提供了许多方便的函数来进行数组操作。其中,numpy.where() 是一个非常有用的函数,它可以根据条件返回数组中符合条件的元素的下标或对应的值。
语法
numpy.where(condition[, x, y])
condition:表示条件,可以是数组或逻辑表达式。x:可选参数,表示条件为True时返回的值或数组。y:可选参数,表示条件为False时返回的值或数组。
示例1:单一选择条件
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
result = np.where(arr > 2)
print(result)
输出结果为:

上面的例子中,当条件 arr > 2 成立时,np.where() 返回了数组中大于2的元素的下标。
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
result = np.where(arr > 2, 'yes', 'no')
print(result)
输出结果为:

在这个例子中,当条件 arr > 2 成立时,返回 'yes',否则返回 'no'。
示例2:多种选择条件
使用与&、或|、非!等逻辑判断语言来构建多种选择条件,来获取满足条件的数组。下面是一个示例代码:
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
result = np.where((arr > 2) & (arr < 5), 0, arr)
print(result)
运行结果:

另外一个例子,满足多种条件下的数组示例如下:
import numpy as np
arr = np.array([1, 4, 9, 16, 25])
result = np.where(arr >= 10, np.sqrt(arr), arr)
print(result)
运行结果:

总结
numpy.where() 函数是一个非常强大的工具,在处理数组中的条件筛选时非常方便。通过合理地运用这个函数,可以提高数据处理效率,简化代码逻辑。
极客笔记