说明
NumPy 教程 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
np.select 是 NumPy 库中的一个函数,用于根据多个条件从一组数组中选择元素。它的功能类似于 Python 中的 if-elif-else 条件语句,但可以在整个数组上进行操作,而不是单个元素。
np.select 的一般语法如下:
numpy.select(condlist, choicelist, default=0)
根据条件返回从choicelist中的元素绘制的数组。
numpy.select函数的工作原理如下:
这个函数在处理需要根据不同条件选择不同值的数组操作中非常有用,例如数据清洗、条件筛选等任务。它可以有效地替代使用循环来逐个元素进行条件判断的操作,从而提高了性能和代码的简洁性。
例如:
import numpy as np
x = np.array([-2, 0, 4, -1, 0, 3])
# 条件列表
conditions = [x > 0, x < 0]
# 值列表,与条件列表中的条件一一对应
values = [1, -1]
# 使用 numpy.select 根据条件选择值
result = np.select(conditions, values, default=99)
result
# array([-1, 99, 1, -1, 99, 1])
我们实现了一个数组 x,根据以下条件对它进行操作:
一些简单的示例:
x = np.arange(6)
condlist = [x<3, x>3]
choicelist = [x, x**2]
x
# array([0, 1, 2, 3, 4, 5])
condlist
'''
[array([ True, True, True, False, False, False]),
array([False, False, False, False, True, True])]
'''
choicelist
# [array([0, 1, 2, 3, 4, 5]), array([ 0, 1, 4, 9, 16, 25])]
np.select(condlist, choicelist, 42)
# array([ 0, 1, 2, 42, 16, 25])
再如:
x = np.arange(6)
condlist = [x<=4, x>3]
choicelist = [x, x**2]
x
# array([0, 1, 2, 3, 4, 5])
condlist
'''
[array([ True, True, True, True, True, False]),
array([False, False, False, False, True, True])]
'''
choicelist
# [array([0, 1, 2, 3, 4, 5]), array([ 0, 1, 4, 9, 16, 25])]
np.select(condlist, choicelist, 55)
# array([ 0, 1, 2, 3, 4, 25])
更新时间:Aug. 28, 2023, 8:52 p.m. 标签:numpy 条件 查询