📅  最后修改于: 2020-04-18 15:05:49             🧑  作者: Mango
二进制运算符作用于位并执行位操作。二进制运算只是将两个值组合以创建新值的规则。
numpy.bitwise_and():此函数用于计算两个数组元素的按位与。此函数计算输入数组中整数的基础二进制表示形式的按位与。
代码1:
# Python程序解释#bitwise_and()函数
import numpy as np
in_num1 = 10
in_num2 = 11
print ("输入数字1 : ", in_num1)
print ("输入数字2 : ", in_num2)
out_num = np.bitwise_and(in_num1, in_num2)
print ("10和11的按位与 : ", out_num)
输出:
输入数字1 : 10
输入数字2 : 11
10和11的按位与 : 10
代码2:
# Python程序解释bitwise_and()函数
import numpy as np
in_arr1 = [2, 8, 125]
in_arr2 = [3, 3, 115]
print ("输入数组1 : ", in_arr1)
print ("输入数组2 : ", in_arr2)
out_arr = np.bitwise_and(in_arr1, in_arr2)
print ("bitwise_and之后的输出数组: ", out_arr)
输出:
输入数组1 : [2, 8, 125]
输入数组2 : [3, 3, 115]
bitwise_and之后的输出数组: [ 2 0 113]
numpy.bitwise_or():此函数用于计算两个数组元素的按位或。此函数计算输入数组中整数的基础二进制表示的按位或。
代码1:
# Python程序解释bitwise_or()函数
import numpy as np
in_num1 = 10
in_num2 = 11
print ("输入数字1 : ", in_num1)
print ("输入数字2 : ", in_num2)
out_num = np.bitwise_or(in_num1, in_num2)
print ("bitwise_or of 10 and 11 : ", out_num)
输出:
输入数字1 : 10
输入数字2 : 11
按位或10和11 : 11
代码2:
# Python程序解释bitwise_or()函数
import numpy as np
in_arr1 = [2, 8, 125]
in_arr2 = [3, 3, 115]
print ("输入数组1 : ", in_arr1)
print ("输入数组2 : ", in_arr2)
out_arr = np.bitwise_or(in_arr1, in_arr2)
print ("bitwise_or之后的输出数组: ", out_arr)
输出:
输入数组1 : [2, 8, 125]
输入数组2 : [3, 3, 115]
bitwise_or之后的输出数组: [ 3 11 127]
numpy.bitwise_xor():此函数用于计算两个数组元素的按位 XOR。此函数计算输入数组中整数的基础二进制表示形式的按位XOR。
代码1:
import numpy as np
in_num1 = 10
in_num2 = 11
print ("输入数字1 : ", in_num1)
print ("输入数字2 : ", in_num2)
out_num = np.bitwise_xor(in_num1, in_num2)
print ("10和11的bitwise_xor : ", out_num)
输出:
输入数字1 : 10
输入数字2 : 11
10和11的bitwise_xor : 1
代码2:
# Python程序解释#bitwise_xor()函数
import numpy as np
in_arr1 = [2, 8, 125]
in_arr2 = [3, 3, 115]
print ("输入数组1 : ", in_arr1)
print ("输入数组2 : ", in_arr2)
out_arr = np.bitwise_xor(in_arr1, in_arr2)
print ("bitwise_xor之后的输出数组: ", out_arr)
输出:
输入数组1 : [2, 8, 125]
输入数组2 : [3, 3, 115]
bitwise_xor之后的输出数组: [ 1 11 14]
numpy.invert():此函数用于计算数组元素的按位反转。它计算输入数组中整数的基础二进制表示的按位非。
对于有符号整数输入,将返回二进制补码。在二进制补码系统中,负数由绝对值的二进制补码表示。
代码1:
# Python程序解释invert()函数
import numpy as np
in_num = 10
print ("输入号码 : ", in_num)
out_num = np.invert(in_num)
print ("倒置10: ", out_num)
输出:
输入号码 : 10
倒置10 : -11
代码2:
# Python程序解释invert()函数
import numpy as np
in_arr = [2, 0, 25]
print ("输入数组 : ", in_arr)
out_arr = np.invert(in_arr)
print ("反转后的输出数组: ", out_arr)
输出:
输入数组 : [2, 0, 25]
反转后的输出数组: [ -3 -1 -26]
numpy.left_shift():此函数用于将整数的位向左移动。通过在arr1的右边添加arr2个0(zeroes)将位向左移动。由于数字的内部表示是二进制格式,因此此操作等效于将arr1乘以2 ** arr2。例如,如果数字为5,而我们想向左移2位,那么在向左移2位之后,结果将是5 *(2 ^ 2)= 20
代码1:
# Python程序解释left_shift()函数
import numpy as np
in_num = 5
bit_shift = 2
print ("输入号码 : ", in_num)
print ("移位数 : ", bit_shift )
out_num = np.left_shift(in_num, bit_shift)
print ("左移2位后 : ", out_num)
输出:
输入号码 : 5
移位数 : 2
左移2位后it : 20
代码2:
# Python程序解释left_shift()函数
import numpy as np
in_arr = [2, 8, 15]
bit_shift =[3, 4, 5]
print ("输入数组 : ", in_arr)
print ("移位数 : ", bit_shift)
out_arr = np.left_shift(in_arr, bit_shift)
print ("左移后的输出数组: ", out_arr)
输出:
输入数组 : [2, 8, 15]
移位数 : [3, 4, 5]
左移后的输出数组: [ 16 128 480]
numpy.right_shift():此函数用于将整数的位向右移动。由于数字的内部表示是二进制格式,因此此操作等效于将arr1除以2 ** arr2。例如,如果数字为20,并且我们想右移2位,那么在右移2位后,结果将为20 /(2 ^ 2)= 5。
代码1:
# Python程序解释right_shift()函数
import numpy as np
in_num = 20
bit_shift = 2
print ("输入号码 : ", in_num)
print ("移位数 : ", bit_shift )
out_num = np.right_shift(in_num, bit_shift)
print ("右移2位后 : ", out_num)
输出:
输入号码 : 20
移位数 : 2
右移2位后it : 5
代码2:
# Python程序解释right_shift()函数
import numpy as np
in_arr = [24, 48, 16]
bit_shift =[3, 4, 2]
print ("输入数组 : ", in_arr)
print ("移位数 : ", bit_shift)
out_arr = np.right_shift(in_arr, bit_shift)
print ("右移后的输出数组: ", out_arr)
输出:
输入数组 : [24, 48, 16]
移位数 : [3, 4, 2]
右移后的输出数组: [3 3 4]
numpy.binary_repr(number,width = None):此函数用于将输入数字的二进制形式表示为字符串。对于负数,如果未指定宽度,则在前面加上减号。如果给定宽度,则返回该宽度的数字的二进制补码。在二进制补码系统中,负数由绝对值的二进制补码表示。这是在计算机上表示有符号整数的最常用方法。
代码1:
# Python程序解释binary_repr()函数
import numpy as np
in_num = 10
print ("输入号码 : ", in_num)
out_num = np.binary_repr(in_num)
print ("10的二进制表示 : ", out_num)
输出:
输入号码 : 10
10的二进制表示 : 1010
代码2:
# Python程序解释binary_repr()函数
import numpy as np
in_arr = [5, -8 ]
print ("输入数组 : ", in_arr)
# 不使用width参数的第一个数组元素的二进制表示
out_num = np.binary_repr(in_arr[0])
print("5的二进制表示")
print ("不使用宽度参数 : ", out_num)
# 使用width参数的第一个数组元素的二进制表示
out_num = np.binary_repr(in_arr[0], width = 5)
print ("使用宽度参数: ", out_num)
print("\n-8的二进制表示")
# 不使用width参数的第二个数组元素的二进制表示形式
out_num = np.binary_repr(in_arr[1])
print ("不使用宽度参数 : ", out_num)
# 使用width参数的第二个数组元素的二进制表示
out_num = np.binary_repr(in_arr[1], width = 5)
print ("使用宽度参数 : ", out_num)
输出:
输入数组 : [5, -8]
5的二进制表示
不使用宽度参数 : 101
使用宽度参数: 00101
-8的二进制表示
不使用宽度参数 : -1000
使用宽度参数 : 11000
numpy.packbits(myarray,axis = None):此函数用于将二进制值数组的元素打包为uint8数组中的位。结果通过在末尾插入零位填充为完整字节。
代码1:
# Python程序解释packbits()函数
import numpy as np
# 使用数组函数创建数组
a = np.array([[[1,0,1],
[0,1,0]],
[[1,1,0],
[0,0,1]]])
# 使用packbits()函数包装数组的元素
b = np.packbits(a, axis=-1)
print(b)
输出:
[[[160],[64]],[[192],[32]]]
numpy.unpackbits(myarray,axis = None):此函数用于将uint8数组的元素解压缩为二进制值输出数组。myarray的每个元素代表一个位域,应将其解压缩为二进制值输出数组。输出数组的形状为1-D(如果轴为None)或与输入数组相同,并且沿指定的轴进行拆包。
代码1:
# Python程序解释unpackbits()函数
import numpy as np
# 使用数组函数创建数组
a = np.array([[2], [7], [23]], dtype=np.uint8)
# 使用packbits()函数包装数组的元素
b = np.unpackbits(a, axis = 1)
print(b)
输出:
[[0,0,0,0,0,0,1,0],
[0,0,0,0,0,1,1,1],
[0,0,0,1,0,1,1,1]]