Введение
В этом практическом занятии мы узнаем о функции 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() является важным инструментом для манипулирования двоичными представлениями чисел и может быть особенно полезна при получении точных вычислительных результатов для сложных числовых моделей.