Функция left_shift
Функция left_shift выполняет побитовый сдвиг влево над каждым элементом массива. Первым параметром функция принимает массив чисел или число, вторым параметром - количество бит, на которое необходимо выполнить сдвиг. Функция возвращает новый массив с результатами операции.
Синтаксис
np.left_shift(x, shift, /, out=None, *, where=True)
Пример
Давайте выполним побитовый сдвиг влево для одномерного массива чисел:
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
res = np.left_shift(arr, 1)
print(res)
Результат выполнения кода:
[ 2 4 6 8 10]
Пример
Выполним сдвиг влево на два бита для тех же данных:
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
res = np.left_shift(arr, 2)
print(res)
Результат выполнения кода:
[ 4 8 12 16 20]
Пример
Функция также поддерживает скалярные значения и отрицательные числа (внимание: сдвиг отрицательных чисел может дать неожиданный результат из-за представления в дополнительном коде):
import numpy as np
num = 5
res = np.left_shift(num, 1)
print(res)
neg_num = -5
res_neg = np.left_shift(neg_num, 1)
print(res_neg)
Результат выполнения кода:
10
-10
Пример
Работа с двумерным массивом и разными значениями сдвига для каждого элемента (используем трансляцию):
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
shifts = np.array([1, 2, 1])
res = np.left_shift(arr, shifts)
print(res)
Результат выполнения кода:
[[ 2 8 6]
[ 8 20 12]]
Пример
Использование оператора << как альтернативы функции:
import numpy as np
arr = np.array([1, 2, 3])
res = arr << 2
print(res)
Результат выполнения кода:
[4 8 12]
Смотрите также
-
функцию
right_shift,
которая выполняет побитовый сдвиг вправо -
функцию
bitwise_and,
которая выполняет побитовое И -
функцию
bitwise_or,
которая выполняет побитовое ИЛИ -
функцию
bitwise_xor,
которая выполняет побитовое исключающее ИЛИ