Code前端首页关于Code前端联系我们

NumPy 教程:可用于按位运算的函数

terry 2年前 (2023-09-25) 阅读数 64 #后端开发

NumPy - 按位运算

以下是 NumPy 包中可用的按位函数。 ?或运算

3.反转 计算按位非4.left_shift Shift5❙ 二进制表示形式。 right_shift 右 将二进制表示形式

bitwise_and

位移位 np。函数 bitwise_and() 对输入数组中整数的二进制表示的相应位执行按位 AND 运算。

示例

import numpy as np 
print '13 和 17 的二进制形式:' 
a,b = 13,17 
print bin(a), bin(b) 
print '\n'  

print '13 和 17 的位与:' 
print np.bitwise_and(13, 17)

输出如下:

13 和 17 的二进制形式:
0b1101 0b10001

13 和 17 的位与:
1

您可以使用下表检查此输出。考虑以下位真值表。

ABJA
111
100
010
000
1101
JA
10001
结果00001

bitwise_or

通过❀u。输入数组整数上的函数 对二进制表示的相应位执行按位 OR 运算。

示例

import numpy as np 
a,b = 13,17 
print '13 和 17 的二进制形式:' 
print bin(a), bin(b)  

print '13 和 17 的位或:' 
print np.bitwise_or(13, 17)

输出如下:

13 和 17 的二进制形式:
0b1101 0b10001

13 和 17 的位或:
29

您可以使用下表检查此输出。考虑以下按位表或真值表。

ABOR
111
101
011
000
1101
OR
10001
结果11101

反转

此函数逐位计算输入数组的 NOT 结果。对于有符号整数,返回补码。

示例

import numpy as np 

print '13 的位反转,其中 ndarray 的 dtype 是 uint8:' 
print np.invert(np.array([13], dtype = np.uint8)) 
print '\n'  
# 比较 13 和 242 的二进制表示,我们发现了位的反转

print '13 的二进制表示:' 
print np.binary_repr(13, width = 8) 
print '\n'  

print '242 的二进制表示:' 
print np.binary_repr(242, width = 8)

输出为:

13 的位反转,其中 ndarray 的 dtype 是 uint8:
[242]

13 的二进制表示:
00001101

242 的二进制表示:
11110010

请注意,np.binary_repr()函数返回十进制数的宽度。函数

left_shift

numpy.left shift() 通过在右侧添加相同数量的 0 将数组元素的二进制表示形式向左移动到指定位置。

例如,

import numpy as np 

print '将 10 左移两位:' 
print np.left_shift(10,2) 
print '\n'  

print '10 的二进制表示:' 
print np.binary_repr(10, width = 8) 
print '\n'  

print '40 的二进制表示:' 
print np.binary_repr(40, width = 8)  
#  '00001010' 中的两位移动到了左边,并在右边添加了两个 0。

输出以下内容:

将 10 左移两位:
40

10 的二进制表示:
00001010

40 的二进制表示:
00101000

right_shift

numpy.right_shift() 该函数将指定元素的位右移以表示数组的位置。还剩 0 个相同的数字。

import numpy as np 

print '将 40 右移两位:' 
print np.right_shift(40,2) 
print '\n'  

print '40 的二进制表示:' 
print np.binary_repr(40, width = 8) 
print '\n'  

print '10 的二进制表示:' 
print np.binary_repr(10, width = 8)  
#  '00001010' 中的两位移动到了右边,并在左边添加了两个 0。

输出为:

将 40 右移两位:
10

40 的二进制表示:
00101000

10 的二进制表示:
00001010

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门