numpy.left_shift#

numpy.left_shift(x1, x2, /, out=None, *, where=True, casting='same_kind', order='K', dtype=None, subok=True[, сигнатура]) = 'left_shift'>#

Сдвинуть биты целого числа влево.

Биты сдвигаются влево путем добавления x2 0 справа от x1. Поскольку внутреннее представление чисел в двоичном формате, эта операция эквивалентна умножению x1 by 2**x2.

Параметры:
x1array_like целочисленного типа

Входные значения.

x2array_like целочисленного типа

Количество нулей для добавления к x1. Должно быть неотрицательным. Если x1.shape != x2.shape, они должны быть транслируемы к общей форме (которая становится формой вывода).

выходndarray, None или кортеж из ndarray и None, опционально

Место для сохранения результата. Если предоставлено, оно должно иметь форму, в которую транслируются входные данные. Если не предоставлено или None, возвращается вновь выделенный массив. Кортеж (возможен только как ключевой аргумент) должен иметь длину, равную количеству выходов.

гдеarray_like, необязательный

Это условие транслируется на вход. В местах, где условие истинно, выход массив будет установлен в результат ufunc. В других местах выход массив сохранит своё исходное значение. Обратите внимание, что если неинициализированный выход массив создается через стандартный out=None, позиции внутри неё, где условие ложно, останутся неинициализированными.

**kwargs

Для других аргументов, доступных только по ключевым словам, смотрите документация ufunc.

Возвращает:
выходмассив целочисленного типа

Возвращает x1 со сдвинутыми битами x2 раз влево. Это скаляр, если оба x1 и x2 являются скалярами.

Смотрите также

right_shift

Сдвинуть биты целого числа вправо.

binary_repr

Возвращает двоичное представление входного числа в виде строки.

Примеры

>>> import numpy as np
>>> np.binary_repr(5)
'101'
>>> np.left_shift(5, 2)
20
>>> np.binary_repr(20)
'10100'
>>> np.left_shift(5, [1,2,3])
array([10, 20, 40])

Обратите внимание, что dtype второго аргумента может изменить dtype результата и привести к неожиданным результатам в некоторых случаях (см. Правила приведения типов):

>>> a = np.left_shift(np.uint8(255), np.int64(1))  # Expect 254
>>> print(a, type(a)) # Unexpected result due to upcasting
510 
>>> b = np.left_shift(np.uint8(255), np.uint8(1))
>>> print(b, type(b))
254 

The << оператор может использоваться как сокращение для np.left_shift на ndarrays.

>>> x1 = 5
>>> x2 = np.array([1, 2, 3])
>>> x1 << x2
array([10, 20, 40])