numpy
条件
查询
好消息!
本教程作者所著新书《深入浅出Pandas:利用Python进行数据处理与分析》(ISBN:9787111685456)已由机械工业出版社出版上市,各大电商平台有售,欢迎:查看详情并关注购买。
说明
NumPy 教程 正在计划编写中,欢迎大家加微信 gairuo123 提供意见、建议、纠错、催更。
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])