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_xor
logical_not
binary_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])