Spec-Zone.ru › NumPy 1.20

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 of integer type

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

x2array_like of integer type

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

outndarray, None, or tuple of ndarray and None, optional

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

wherearray_like, optional

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

**kwargs

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

Возвращаемые значения
outarray of integer type

Возвращает x1 с битами, сдвинутыми 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–2021 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.20/reference/generated/numpy.left_shift.html

Spec-Zone.ru

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