numpy where 理解

x = np.arange(1,4)
y = np.arange(11,14)
z = np.arange(3,10,3)
print z

arr = np.where(z>8,x,y)
print arr
# [11 12  3]
arr1 = np.where(z>5,x,y)
print arr1
# [11  2  3]

arr2 = np.where(z>1,x,y)
print arr2
# [1 2 3]

where的定义为x if condition else y
如果满足第一个参数的条件(True)就 执行 x 
如果不满足第一个参数的条件(False)就 执行 y

x = [1,2,3]
y = [11,12,13]
z = [3,6,9]
上面代码的输出可以发现当z>1,为全真,那么输出应该就是x  [1 2 3]
                      当z>8,因为z为[3,6,9]只有9满足,所以前两项为False 以y值来补充,结果自然为[11,12,3],最后一项满足条件为True,所以最后一项就是x的最后一项
                      当z>5,此时z的前一项不满足,后两项满足,所以前一项取y,后两项取x,结果为[11,2,3]
			
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值