numpy.left_shift
- numpy.left_shift(x1, x2, /, out=None, *, where=True, casting='same_kind', order='K', dtype=None, subok=True[, signature])=<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массив целого типа
-
Возвращает
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), np.int64(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на массивах.>>> x1 = 5 >>> x2 = np.array([1, 2, 3]) >>> x1 << x2 array([10, 20, 40])
© 2005–2024 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/2.0/reference/generated/numpy.left_shift.html