📅  最后修改于: 2023-12-03 15:34:15.652000             🧑  作者: Mango
函数numpy.ndarray.__rshift__()
用于计算数组元素的按位右移。
ndarray.__rshift__(value, /)
value
:移动的位数。必须是整数或布尔类型。返回移位后的数组。
import numpy as np
arr = np.array([6, 7, 8])
print(arr.__rshift__(1)) # [3 3 4]
在这个例子中,输入的数组是[6, 7, 8]
。__rshift__
方法把数组中的每个元素都右移了1位并返回[3, 3, 4]
。
import numpy as np
arr = np.array([6, 7, 8])
print(arr>>1) # [3 3 4]
在这个例子中,我们使用了Python的另一种运算符>>
来实现同样的右移操作,返回结果也是[3, 3, 4]
。
注意: 右移运算符的优先级比加减运算符低,因此在表达式中使用时需要加上括号。
import numpy as np
arr1 = np.array([3])
arr2 = np.array([4])
print(arr1.__rshift__(arr2)) # [0]
在这个例子中,输入的数组是arr1=[3]
和arr2=[4]
。__rshift__
方法把arr1
数组中的元素在按位上右移了arr2
中元素的位数并返回[0]
。
注意:如果value
是数组,则需要保证该数组与当前数组的形状一致,否则会抛出异常。
import numpy as np
arr = np.array([8, 16, 32])
print(arr.__rshift__(0)) # [ 8 16 32]
在这个例子中,输入的数组是[8, 16, 32]
,值为0
。__rshift__
方法不对数组进行任何操作,直接返回原始数组[8, 16, 32]
。
import numpy as np
arr = np.array([False, True])
print(arr.__rshift__(1)) # [0 0]
在这个例子中,输入的数组是[False, True]
。由于布尔类型在计算时会被转换成整型,此处的1表示整型值1。__rshift__
方法返回了按位右移后的数组[0, 0]
。
import numpy as np
arr = np.array([-2, -1, 0])
print(arr.__rshift__(1)) # [-1 -1 0]
在这个例子中,输入的数组是[-2, -1, 0]
。由于负数二进制中的最高位为1,因此右移时会在左侧填什么值就成为了实现者的选择。该情况下,numpy选择了在左侧插入1。因此,__rshift__
方法返回了按位右移后的数组[-1, -1, 0]
。
总体而言,numpy.ndarray.__rshift__()
方法是一个按位右移的函数。它可以用于对数组元素(整型或布尔类型)进行移位。如果要使用该方法,需要调用该方法并将要移动的位数作为参数传递给该方法。