• numpy中位操作函数和比较函数


    位操作函数和比较函数

    位操作函数可以在整数或整数数组的位上进行操作

    Key_Function

    xor操作符, 当两个操作数的符号不一致时, 结果为负数

    位操作符:

    ^ 对应bitwise_xor函数, 当两个元素的正负号不一致时, 返回是负数的那个数字

    & 对二进制字节进行AND操作, 只有都是1的时候才返回1

    |

    << 位的左移, 数值翻倍

    >> 位的右移, 数值减半

    比较运算符:

    <  对应less函数, 这个就是小于符号

    > 大于符号

    ==  等于符号

    Code

    import numpy as np
    
    x = np.arange(-9, 9)
    y = -x
    print((x ^ y) < 0)
    '''
    [ True  True  True  True  True  True  True  True  True False  True  True
      True  True  True  True  True  True]
    '''
    
    print(np.less(np.bitwise_xor(x, y), 0))
    '''
    [ True  True  True  True  True  True  True  True  True False  True  True
      True  True  True  True  True  True]
    '''
    
    print((x & (x - 1)) == 0)   # & 为并运算, 0 1 取 1
    # 在二进制数中, 2的幂数表示为一个1后面跟一连串0的形式
    # 而比2的幂数小1的数表示为一串二进制1
    '''
    [False False False False False False False False False  True  True  True
     False  True False False False  True]
    '''
    
    print(np.equal(np.bitwise_and(x, (x - 1)), 0))
    '''
    [False False False False False False False False False  True  True  True
     False  True False False False  True]
     '''
     
    print(x & ((1 << 2) - 1))   
    # 二进制数的位左移一位, 则数值翻倍
    # [3 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 0]
    
    '''
    2的幂数减去1得到一串1组成的二进制数,可以作为掩码,与其他数字取AND运算
    相当于加了个过滤,原值为1的还是1,原值为0的还是0
    这个掩码是2位的, 那么AND运算只针对其他数字的后两位进行过滤
    '''
    
    print(np.bitwise_and(x, np.left_shift(1, 2) - 1))
    # [3 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 0]
  • 相关阅读:
    php接口安全设计浅谈
    tcp长连接、短连接、连接池的思考
    PHP单例模式及应用场
    springcloud ribbon
    springcloud eureka
    springcloud gateway
    zipkin下载地址
    用Zookeeper作为Spring cloud的配置中心
    mybaties四大对象
    java equals总结
  • 原文地址:https://www.cnblogs.com/draven123/p/11403344.html
Copyright © 2020-2023  润新知