NumPy 右移函数

Beginner

介绍

在本实验中,我们将学习 NumPy 库中的 right_shift() 函数。该函数用于对类似数组的对象执行右移操作。right_shift() 函数主要是将操作数的二进制表示中的位向右移动指定的位数,并在左侧追加相同数量的 0。由于数字的内部表示是二进制格式,因此右移操作相当于将数字除以 2^x,其中 x 是要移动的位数。我们将介绍 right_shift() 函数的语法、参数以及该函数返回的值,并提供代码示例。

虚拟机提示

虚拟机启动完成后,点击左上角切换到 Notebook 标签页,以访问 Jupyter Notebook 进行练习。

有时,你可能需要等待几秒钟,直到 Jupyter Notebook 完成加载。由于 Jupyter Notebook 的限制,操作验证无法自动化。

如果你在学习过程中遇到问题,请随时向 Labby 寻求帮助。在实验结束后提供反馈,我们将及时为你解决问题。

导入 NumPy 库

import numpy as np

NumPy 是一个 Python 库,全称为 'Numerical Python'。它用于对大型和复杂的数组执行操作。

理解 right_shift() 函数

right_shift() 函数用于对类似数组的对象执行右移操作。该函数的参数如下:

语法

numpy.right_shift(x1, x2, /, out=None, *, where=True, casting='same_kind', order='K', dtype=None, subok=True[, signature, extobj])
参数 描述
x1 表示输入值,以数组的形式存在。
x2 表示要从 x1 右侧移除的位数。如果 x1.shape != x2.shape,则它们必须可以广播到一个共同的形状,该形状将成为输出的形状。
out 表示存储结果的位置。如果提供了此参数,则其形状必须与输入广播到的形状一致。如果未提供此参数或为 None,则返回一个新分配的数组。
where 表示广播到输入的条件。在条件为 True 的位置,输出数组将被设置为 ufunc 的结果,否则输出数组将保留其原始值。

返回值

该函数将返回 x1,其位向右移动 x2 次。如果 x1x2 都是标量,则返回值也是标量。

示例 1

我们将通过标量输入值演示 right_shift() 函数的用法。

input_num = 40
bit_shift = 2

print("The input number is: ")
print(input_num)
print("The number of bit shift: ")
print(bit_shift)

output = np.right_shift(input_num, bit_shift)
print("After shifting 2 bits to the right: ")
print(output)

输出:

The input number is:
40
The number of bit shift:
2
After shifting 2 bits to the right:
10

示例 2

现在我们将 right_shift() 函数应用于输入数组。

input_arr = [8, 28, 55]
bit_shift = [3, 4, 2]

print("The input array is: ")
print(input_arr)
print("The number of bit shift: ")
print(bit_shift)

output = np.right_shift(input_arr, bit_shift)
print("After shifting bits to the right, the output array is: ")
print(output)

输出:

The input array is:
[8, 28, 55]
The number of bit shift :
[3, 4, 2]
After shifting bits to the right, the output array is:
[ 1 1 13]

总结

在本实验中,我们学习了 NumPy 库中的 right_shift() 函数,该函数用于对类似数组的对象执行右移操作。我们介绍了它的基本语法、参数以及该函数返回的值,并提供了代码示例。right_shift() 函数是操作数字二进制表示的重要工具,尤其适用于为复杂数值模型生成精确的计算结果。