NumPy bitwise_ 开头的函数是位运算函数
NumPy 位运算包括以下几个函数:
-
bitwise_and 对数组元素执行位与操作
-
bitwise_or 对数组元素执行位或操作
-
invert 按位取反
-
left_shift 向左移动二进制表示的位
-
right_shift 向右移动二进制表示的位
也可以用 Python 自身的位运算符进行操作:
-
& :按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0
-
| :按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1
-
^ :按位异或运算符:当两对应的二进位相异时,结果为 1
-
~ :按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1
-
<< :左移动运算符:运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0
-
>> :右移动运算符:把">>“左边的运算数的各二进位全部右移若干位,”>>"右边的数指定移动的位数
bitwise_and() 函数
对数组中整数的二进制形式执行位与运算
示例:
In [1]: import numpy as np
In [2]: bin(13),bin(17)
Out[2]: ('0b1101','0b10001')
In [3]: np.bitwise_and(13,17)
Out[3]: 1
In [4]: 13 & 17
Out[4]: 1
bitwise_and() 函数
对数组中整数的二进制形式执行位或运算
In [5]: np.bitwise_or(13,17)
Out[5]: 29
In [6]: 13 | 17
Out[6]: 29
invert() 函数
对数组中整数进行位取反运算,即 0 变成 1,1 变成 0
In [7]: print(np.invert(np.array([13],dtype=np.uint8)))
[242]
In [8]: print (np.binary_repr(13,width=8))
00001101
In [9]: print(np.binary_repr(242,width=8))
11110010
left_shift() 函数
将数组元素的二进制形式向左移动到指定位置,右侧附加相等数量的 0
In [10]: np.left_shift(10,2)
Out[10]: 40
In [11]: np.binary_repr(10,width=8)
Out[11]: '00001010'
In [12]: np.binary_repr(40,width=8)
Out[12]: '00101000'
right_shift() 函数
将数组元素的二进制形式向右移动到指定位置,左侧附加相等数量的 0
In [13]: np.right_shift(40,2)
Out[13]: 10
In [14]: np.binary_repr(40,width=8)
Out[14]: '00101000'
In [15]: np.binary_repr(20,width=8)
Out[15]: '00010100'
(编辑:北几岛)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|