📅  最后修改于: 2023-12-03 15:22:34.962000             🧑  作者: Mango
在Python中,我们可以使用NumPy库中的np.select函数,根据多个条件动态选择不同的操作。np.select函数的语法如下:
np.select(condlist, choicelist, default=0)
其中,condlist
为一个列表,表示多个条件;choicelist
为一个列表,表示在每个条件为True时的返回值;default
则是一个默认的返回值。
下面是一个使用np.select函数的例子:
import numpy as np
# 创建一个从0到10的一维数组
arr = np.arange(0, 10)
# 定义三个条件
condlist = [arr < 3, (arr >= 3) & (arr <= 6), arr > 6]
# 定义三个返回值
choicelist = [arr * 2, arr * 3, arr * 4]
# 使用np.select函数根据条件和返回值进行返回
result = np.select(condlist, choicelist)
print(result)
输出结果为:
[ 0 2 4 9 12 15 18 28 32 36]
在上面的例子中,我们根据三个条件分别选择不同的返回值。当条件1为True时,返回arr*2
;当条件2为True时,返回arr*3
;当条件3为True时,返回arr*4
。
要注意的是,当某个数据不满足任何判断条件时,默认返回0
。如果要让其返回特定值,需要在default
参数中进行定义。下面是一个使用了default
参数的例子:
import numpy as np
# 创建一个从0到10的一维数组
arr = np.arange(0, 10)
# 定义三个条件
condlist = [arr < 3, (arr >= 3) & (arr <= 6), arr > 6]
# 定义三个返回值
choicelist = [arr * 2, arr * 3, arr * 4]
# 使用np.select函数根据条件和返回值进行返回,设置默认返回值为-1
result = np.select(condlist, choicelist, default=-1)
print(result)
输出结果为:
[-1 -1 -1 9 12 15 18 28 32 36]
在上面的例子中,由于没有对arr=0,1,2
进行判断,因此默认返回了-1
。