numpy.where()

numpy.where
numpy.where(condition, [x, y])
Return elements, either from x or y, depending on condition.
满足条件(condition),输出x,不满足输出y

If only condition is given, return condition.nonzero().

Parameters: condition : array_like, bool
When True, yield x, otherwise yield y.
x, y : array_like, optional
Values from which to choose. x, y and condition need to be broadcastable to some shape.

Returns: out : ndarray or tuple of ndarrays
If both x and y are specified, the output array contains elements of x where condition is True, and elements from y elsewhere.
If only condition is given, return the tuple condition.nonzero(), the indices where condition is True.


现在来看看例子吧,主要有三种用法

  1. 如果条件是布尔值,那么x, y的值和他一一对应
s = np.where([[False, True],
       [True, False]],
       [[2, 4],
       [5, 6]],
       [[1, 3],
        [4, 5]])
s =  [[1 4]
   [5 5]]

可以看的出来,x, y各是一个二维数组,布尔值如果是False, 则选择y的值;是True, 则选择x的值。

  1. 只有条件 (condition),没有x和y,则输出满足条件 (即非0) 元素的坐标
a = np.array([2,4,6,8,10])
s = np.where(a > 6)
print(s)
s = (array([3, 4], dtype=int64),)

是以tuple的形式给出。

  1. 如果条件 (condition)是一维数组,则就相当于
 [xv if c else yv for (c,xv,yv) in zip(condition,x,y)]
c = np.arange(10)
s1 = np.where(c, 2, -2)
s2 = np.where(c>5, 2, -2)
print(s1)
s1 = [-2  2  2  2  2  2  2  2  2  2]
s2 = [-2 -2 -2 -2 -2 -2  2  2  2  2]

此时,条件 c 就是真值表。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值