Функция сдвига вправо в NumPy

Beginner

Введение

В этом практическом занятии мы узнаем о функции right_shift() в библиотеке NumPy. Эта функция используется для выполнения операции сдвига вправо на объекте, похожем на массив. Функция 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' (Числовой 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, то они должны быть совместимы для распространения (broadcastable) до общего вида, и этот вид становится видом выходного массива.
out указывает место, в котором сохраняется результат. Если этот параметр задан, он должен иметь вид, к которому можно распространить входные данные. Если этот параметр не задан или равен None, то возвращается новый выделенный массив.
where указывает условие, которое распространяется на входные данные. В тех местах, где условие равно True, выходной массив будет установлен равным результату универсальной функции (ufunc), в противном случае выходной массив сохранит свое исходное значение.

Возвращаемое значение

Эта функция возвращает x1 с битами, сдвинутыми вправо на x2 раз. Если и x1, и x2 являются скалярами, то возвращаемое значение также является скаляром.

Пример 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]

Резюме

В этом практическом занятии (лабораторной работе) мы изучили функцию right_shift() библиотеки NumPy, которая используется для выполнения операции сдвига вправо на объекте, похожем на массив. Мы рассмотрели ее базовый синтаксис, параметры и возвращаемые этой функцией значения, а также привели примеры кода. Функция right_shift() является важным инструментом для манипулирования двоичными представлениями чисел и может быть особенно полезна при получении точных вычислительных результатов для сложных числовых моделей.