📜  Python| numpy numpy.ndarray.__rshift__()(1)

📅  最后修改于: 2023-12-03 15:34:15.652000             🧑  作者: Mango

Python | numpy numpy.ndarray.rshift()

函数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__()方法是一个按位右移的函数。它可以用于对数组元素(整型或布尔类型)进行移位。如果要使用该方法,需要调用该方法并将要移动的位数作为参数传递给该方法。