Python numpy.right_shift()
numpy.right_shift()函数用于将一个整数的位向右移。
因为数字的内部表示是二进制格式,这个操作相当于用arr1除以2arr2。例如,如果数字是20,我们想进行2位右移,那么右移2位后,结果将是20/(2^2)=5。
语法 : numpy.right_shift(arr1, arr2, /, out=None, *, where=True, casting=’same_kind’, order=’K’, dtype=None, ufunc ‘right_shift’)
参数 :
arr1 :整数类型的数组
arr2 :整数类型的数组
我们要在arr1的右边删除的位数。
out :[ndarray, optional] 一个储存结果的位置。
-> 如果提供,它必须有一个输入广播到的形状。
-> 如果没有提供或没有,将返回一个新分配的数组。
**kwargs :允许你向一个函数传递长度可变的关键字参数。当我们想在一个函数中处理命名的参数时,它就被使用。
where :[array_like, optional] 真值意味着计算该位置的通用函数(ufunc),假值意味着不考虑输出中的值。
返回 :整数类型的数组。
返回Arr1的位数向右移了Arr2倍。如果arr1和arr2都是标量,这就是一个标量。
**代码 #1 : **
# Python program explaining
# right_shift() function
import numpy as geek
in_num = 20
bit_shift = 2
print ("Input number : ", in_num)
print ("Number of bit shift : ", bit_shift )
out_num = geek.right_shift(in_num, bit_shift)
print ("After right shifting 2 bit : ", out_num)
输出 :
Input number : 20
Number of bit shift : 2
After right shifting 2 bit : 5
代码 #2 :
# Python program explaining
# right_shift() function
import numpy as geek
in_arr = [24, 48, 16]
bit_shift =[3, 4, 2]
print ("Input array : ", in_arr)
print ("Number of bit shift : ", bit_shift)
out_arr = geek.right_shift(in_arr, bit_shift)
print ("Output array after right shifting: ", out_arr)
输出 :
Input array : [24, 48, 16]
Number of bit shift : [3, 4, 2]
Output array after right shifting: [3 3 4]