numpy.invert#
-
numpy.инвертировать(x, /, out=None, *, where=True, casting='same_kind', order='K', dtype=None, subok=True[, сигнатура]) =
'invert'> # Выполняет побитовую инверсию, или побитовое НЕ, поэлементно.
Вычисляет побитовое НЕ двоичного представления целых чисел во входных массивах. Этот ufunc реализует оператор C/Python
~.Для знаковых целочисленных входных данных возвращается побитовое НЕ абсолютного значения. В системе с дополнительным кодом эта операция фактически инвертирует все биты, что приводит к представлению, соответствующему отрицательному значению входных данных плюс один. Это наиболее распространённый метод представления знаковых целых чисел в компьютерах. [1]. N-битная система дополнения до двух может представлять каждое целое число в диапазоне \(-2^{N-1}\) to \(+2^{N-1}-1\).
- Параметры:
- xarray_like
Обрабатываются только целочисленные и булевы типы.
- выходndarray, None или кортеж из ndarray и None, опционально
Место для сохранения результата. Если предоставлено, оно должно иметь форму, в которую транслируются входные данные. Если не предоставлено или None, возвращается вновь выделенный массив. Кортеж (возможен только как ключевой аргумент) должен иметь длину, равную количеству выходов.
- гдеarray_like, необязательный
Это условие транслируется на вход. В местах, где условие истинно, выход массив будет установлен в результат ufunc. В других местах выход массив сохранит своё исходное значение. Обратите внимание, что если неинициализированный выход массив создается через стандартный
out=None, позиции внутри неё, где условие ложно, останутся неинициализированными.- **kwargs
Для других аргументов, доступных только по ключевым словам, смотрите документация ufunc.
- Возвращает:
- выходndarray или скаляр
Результат. Это скаляр, если x является скаляром.
Смотрите также
bitwise_and,bitwise_or,bitwise_xorlogical_notbinary_reprВозвращает двоичное представление входного числа в виде строки.
Примечания
numpy.bitwise_notявляется псевдонимом дляinvert:>>> np.bitwise_not is np.invert True
Ссылки
[1]Википедия, «Дополнение до двух», https://en.wikipedia.org/wiki/Two’s_complement
Примеры
>>> import numpy as np
Мы видели, что 13 представлено как
00001101. Инверсия или побитовое НЕ числа 13 тогда:>>> x = np.invert(np.array(13, dtype=np.uint8)) >>> x np.uint8(242) >>> np.binary_repr(x, width=8) '11110010'
Результат зависит от битовой ширины:
>>> x = np.invert(np.array(13, dtype=np.uint16)) >>> x np.uint16(65522) >>> np.binary_repr(x, width=16) '1111111111110010'
При использовании знаковых целочисленных типов результат является побитовым НЕ беззнакового типа, интерпретируемого как знаковое целое число:
>>> np.invert(np.array([13], dtype=np.int8)) array([-14], dtype=int8) >>> np.binary_repr(-14, width=8) '11110010'
Булевы значения также принимаются:
>>> np.invert(np.array([True, False])) array([False, True])
The
~оператор может использоваться как сокращение дляnp.invertна ndarrays.>>> x1 = np.array([True, False]) >>> ~x1 array([False, True])