python中a.any()以及&&,||

关于运算符&&与||,在python中是没有这两个运算符的,取而代之的是英文的and和or。其他的运算符则没有发生变动。
a.any()函数的官方解释是: Test whether any elements of an array evaluate to True along an axis。
也就是说针对一个list,判断list中的某个元素是否是真,此时只要有一个元素是真,list全部元素就全部输出。下面参考一个例子:

#!/usr/bin/python
#coding=utf8
 
import numpy as np
 
def f(data):
    for val in data:
        if val <= 0.6:
            r1 = val*1
            print ("this is <= 0.6 numbers", r1)
        if val > 4:
            r1 = val*1
            print ("this is > 4 numbers ", r1)
 
def main():
    data = np.arange(0.1, 5.1, 0.5)
    if np.any(data > 0.3) and np.any(data <= 1):
        r1 = data * 1
    print (r1)
    f(data)
 
if __name__=='__main__':
    main()

输出为
[0.1 0.6 1.1 1.6 2.1 2.6 3.1 3.6 4.1 4.6]
this is <= 0.6 numbers 0.1
this is <= 0.6 numbers 0.6
this is > 4 numbers 4.1
this is > 4 numbers 4.6
在a.any()中,只要满足条件,整个list就是true的。而我在分段函数计算时,恰恰使用到了a.any()来判断list的范围,在后面的计算中,其实是整个list同时运算然后赋值了,也就将分段函数结果简化成了某一段的所有值。正确的计算分段函数有两种策略,要么像上面的函数f(),要么将list分段带入运算。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值