NumPy 右移() 函数



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])

参数

Numpy right_shift() 函数接受以下参数:

  • x1: 应用右移运算的输入值。
  • x2: 要应用的右移位置数。
  • out(ndarray, None 或 ndarray 和 None 的元组,可选):存储结果的位置。
  • where(array_like,可选):这是必须应用右移运算的条件。
  • **kwargs: 参数(如 casting、order、dtype、subok)是其他关键字参数,可根据需要使用。

返回值

此函数返回一个数组,其中每个元素都是将输入值中相应元素的位向右移动 shift 指定的位置数的结果。

示例 1

以下是 Numpy right_shift() 函数的基本示例,其中将整数的位向右移动指定数量的位置,有效地将数字除以 2 的幂:

import numpy as np

# Define an integer
number = 16  # Binary: 00010000

# Define the number of positions to shift
shift_positions = 2

# Perform the right shift operation
result = np.right_shift(number, shift_positions)

print('Original number:', number)
print('Binary representation:', np.binary_repr(number, width=8))
print(f'Right shift by {shift_positions} positions results in:', result)
print('Binary representation after shift:', np.binary_repr(result, width=8))  

以下是应用于整数的right_shift() 函数的输出:

Original number: 16
Binary representation: 00010000
Right shift by 2 positions results in: 4
Binary representation after shift: 00000100

示例 2

在处理按位移位运算时,通常不支持负移位值。尝试使用负移位值通常会导致错误或未定义的行为,具体取决于实现和特定的操作。以下是它的示例:

import numpy as np

# Define an array of integers
array = np.array([16, 32, 64, 128])

# Define a negative number of positions to shift
negative_shift_positions = -2

try:
    # Attempt to perform the right shift operation with a negative shift value
    result = np.right_shift(array, negative_shift_positions)
    print('Result with negative shift value:', result)
except ValueError as e:
    print('Error:', e)

以下是负右移的输出:

Result with negative shift value: [0 0 0 0]

示例 3

这是使用right_shift() 函数执行位右移运算的另一个示例:

import numpy as np

# Create a One-Dimensional array
arr = np.array([56, 87, 23, 92, 81, 98, 45, 98])

# Displaying our array
print("Array:", arr)

# Get the datatype
print("Array datatype:", arr.dtype)

# Get the dimensions of the Array
print("Array Dimensions:", arr.ndim)

# Get the shape of the Array
print("Our Array Shape:", arr.shape)

# Get the number of elements of the Array
print("Elements in the Array:", arr.size)

# The count of right shift
valRight = 3
# To shift the bits of an integer to the right, use the numpy.right_shift() method in Python Numpy
result = np.right_shift(arr, valRight)

# Display the result of the right shift operation
print("Result (right shift):", result)

以下是右移的输出:

Array: [56 87 23 92 81 98 45 98]
Array datatype: int64
Array Dimensions: 1
Our Array Shape: (8,)
Elements in the Array: 8
Result (right shift): [ 7 10  2 11 10 12  5 12]
numpy_binary_operators.htm
广告