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()
函数是一个非常强大的工具,在处理数组中的条件筛选时非常方便。通过合理地运用这个函数,可以提高数据处理效率,简化代码逻辑。