NumPy 教程(第 12 章):位运算

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'
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值