numpy中位操做函数和比较函数

位操做函数和比较函数

位操做函数能够在整数或整数数组的位上进行操做数组

Key_Function

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

位操做符:函数

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

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

|blog

<< 位的左移, 数值翻倍it

>> 位的右移, 数值减半io

比较运算符:class

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

> 大于符号

==  等于符号

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]
相关文章
相关标签/搜索