NumPy 教程:可用于按位运算的函数
NumPy - 按位运算
以下是 NumPy 包中可用的按位函数。 ?或运算
反转
计算按位非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
您可以使用下表检查此输出。考虑以下位真值表。
A | B | JA |
---|---|---|
1 | 1 | 1 |
1 | 0 | 0 |
0 | 1 | 0 |
0 | 0 | 0 |
1 | 1 | 0 | 1 | ||
---|---|---|---|---|---|
JA | |||||
1 | 0 | 0 | 0 | 1 | |
结果 | 0 | 0 | 0 | 0 | 1 |
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
您可以使用下表检查此输出。考虑以下按位表或真值表。
A | B | OR |
---|---|---|
1 | 1 | 1 |
1 | 0 | 1 |
0 | 1 | 1 |
0 | 0 | 0 |
1 | 1 | 0 | 1 | ||
---|---|---|---|---|---|
OR | |||||
1 | 0 | 0 | 0 | 1 | |
结果 | 1 | 1 | 1 | 0 | 1 |
反转
此函数逐位计算输入数组的 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前端网发表,如需转载,请注明页面地址。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。