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'>
-
Сдвигает биты целого числа влево.
Биты сдвигаются влево путем добавления
x20 в правой части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