如果分段数量增加,则需要嵌套多层的
where()
。此时可以使用select()
:numpy.select(condlist, choicelist, default=0)
。其中
condlist
为长度为N
的列表,列表元素为数组,给出了条件数组结果筛选规则如下:
- 从
condlist
左到右扫描,若发现第i
个元素(是个数组)对应位置为True
或者非零,则输出元素来自choicelist
的第i
个元素(是个数组)。因此若有多个condlist
的元素满足,则只会使用第一个遇到的。 - 如果扫描结果是都不满足,则使用
default
- 从
-
condlist
:为一个列表,列表元素为布尔数组,数组形状和x
相同。-
- 当
condlist[i]
对应位置为True
时,则该位置处的输出值由funclist[i]
来计算。如果funclist
长度比condlist
长1,则当所有的condlist
都是False
时,则使用funclist[len(condlist)]
来计算。如果有多个符合条件,则使用最后一个遇到的(而不是第一个遇到的) - 列表元素可以为数值,表示一个返回为常数值(就是该数值)的函数。
- 当