Python中的 numpy.right_shift()
numpy.right_shift()
函数用于将整数的位向右移动。
因为数字的内部表示是二进制格式,所以这个操作相当于将 arr1 除以 2**arr2。例如,如果数字是 20,我们想要右移 2 位,那么在右移 2 位之后,结果将是 20/(2^2) = 5。
Syntax : numpy.right_shift(arr1, arr2, /, out=None, *, where=True, casting=’same_kind’, order=’K’, dtype=None, ufunc ‘right_shift’)
Parameters :
arr1 : array_like of integer type
arr2 : array_like of integer type
Number of bits we have to remove at the right of arr1.
out : [ndarray, optional] A location into which the result is stored.
-> If provided, it must have a shape that the inputs broadcast to.
-> If not provided or None, a freshly-allocated array is returned.
**kwargs : allows you to pass keyword variable length of argument to a function. It is used when we want to handle named argument in a function.
where : [array_like, optional] True value means to calculate the universal functions(ufunc) at that position, False value means to leave the value in the output alone.
Return : array of integer type.
Return arr1 with bits shifted arr2 times to the right. This is a scalar if both arr1 and arr2 are scalars.
代码#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]