Spec-Zone.ru › NumPy 1.21

numpy.left_shift

numpy.left_shift(x1, x2, /, out=None, *, where=True, casting='same_kind', order='K', dtype=None, subok=True[, signature, extobj]) = <ufunc 'left_shift'>

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

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

Параметры
x1array_like целого типа

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

x2array_like целого типа

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

outndarray, None или кортеж ndarray и None, необязательно

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

wherearray_like, необязательно

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

**kwargs

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

Возвращает
outмассив целого типа

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

См. также

right_shift

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

binary_repr

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

Примеры

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

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

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

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

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

© 2005–2022 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.21/reference/generated/numpy.left_shift.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API