numpy.right_shift(x1, x2, /) 是 NumPy 中用于执行按位右移操作的函数。它将数组 x1 中的每个元素的二进制表示向右移动 x2 中对应元素指定的位数。它可以用于标量、数组或广播兼容的两个数组之间。本文主要介绍一下NumPy中right_shift方法的使用。

numpy.right_shift

numpy.right_shift(x1, x2, /, out=None, *, where=True, casting='same_kind', order='K', dtype=None, subok=True[, signature, extobj]) = <ufunc 'right_shift'>

向右移整数的位。

位向右移x2。 因为数字的内部表示是二进制格式,所以此操作等效于将x1除以2 ** x2

参数 :

x1 :array_like, int

输入值。

x2 :array_like, int

x1右边要除去的位数。 如果x1.shape!= x2.shape

则必须将它们传递为通用shape(即输出的形状)。

out :ndarray, None, 或 ndarray的tuple 

None ,可选

结果存储的位置。 如果提供,

它必须具有输入传递到的shape。 

如果未提供或没有,则返回一个新分配的数组。

 元组(只能作为关键字参数)

的长度必须等于输出的数量。

where :array_like, 可选

这个条件在输入上传递。在条件为真的位置,

out数组将被设置为ufunc结果。在其他地方,

out数组将保留其原始值。

注意,如果通过默认out=None

创建了一个未初始化的数组,

其中条件为False的位置将保持未初始化。

**kwargs

有关其他仅关键字的参数,请参见ufunc文档。

返回值 :

out :ndarray, int

返回x1,位右移x2次。如果x1和x2都是标量,

这就是一个标量。

例如

1)基础用法(标量)

import numpy as np

# 等价于 8 >> 2
print(np.right_shift(8, 2)) 

2)对数组应用

import numpy as np

a = np.array([8, 16, 32])
b = np.array([1, 2, 3])

result = np.right_shift(a, b)
print(result)

3)与布尔数组一起使用

import numpy as np

a = np.array([4, 5], dtype=np.int32)
b = np.array([1, 0], dtype=np.int32)

print(np.right_shift(a, b))

4)广播行为

import numpy as np

a = np.array([[16, 32], [64, 128]])
b = 2

print(np.right_shift(a, b))

推荐文档

相关文档

大家感兴趣的内容

随机列表