numpy中的np.where
先来看下相关的说明 : np.where(condition, [x, y]),这里三个参数,其中必写参数是condition(判断条件),后边的x和y是可选参数.那么这三个参数都有怎样的要求呢?
condition:array_like,bool ,当为True时,产生x
,否则产生y
简单说,对第一个参数的要求是这样的,首先是数据类型的要求,类似于数组或者布尔值,当判断条件为真时返回x中的值,否则返回y中的值
x,y:array_like,可选,要从中选择的值。 x
,y
和condition
需要可广播到某种形状
x和y是可选参数,并且对这两个参数的数据类型要求只有类似数组这一条,当条件判断为true或者false时从这两个类似数组的容器中取数.
还有很重要的一点就是对三个参数的要求是都可以广播,也就是说对参数的形状做出了要求,对condition来说,是布尔值的时候无所谓形状,当时类似数组的容器时,与x和y的形状需要满足可广播的条件.
OK,前边的纯文字讲解到此结束,下边,通过例子来直观感受下.容我偷个懒,直接用了帮助文档中的例子:
情况一 : 三个参数完整
np.where([[True, False], [True, True]],
[[1, 2], [3, 4]],
[[9, 8], [7, 6]])
返回值:
array([[1, 8],
[3, 4]])
来看一下这个结果是怎么产生的.