Spec-Zone.ru › NumPy 2.0

numpy.bitwise_invert

numpy.bitwise_invert(x, /, out=None, *, where=True, casting='same_kind', order='K', dtype=None, subok=True[, signature])=<ufunc 'invert'>

Вычисление побитового инвертирования или побитового НЕ, поэлементно.

Вычисляет побитовое НЕ для двоичного представления целых чисел в массивах входных данных. Эта функция ufunc реализует оператор C/Python ~.

Для входных данных со знаком целого типа возвращается дополнение до двух. В системе дополнения до двух отрицательные числа представлены дополнением до двух абсолютного значения. Это наиболее распространенный метод представления целых чисел со знаком на компьютерах [1]. N-разрядная система дополнения до двух может представлять любое целое число в диапазоне \(-2^{N-1}\) до \(+2^{N-1}-1\).

Параметры:
xarray_like

Обрабатываются только целочисленные и логические типы.

outndarray, None, или кортеж из ndarray и None, необязательно

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

wherearray_like, необязательно

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

**kwargs

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

Возвращает:
outndarray или скаляр

Результат. Это скаляр, если 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

Примеры

Мы видим, что 13 представляется как 00001101. Тогда инверсия или побитовое НЕ 13 равно:

>>> x = np.invert(np.array(13, dtype=np.uint8))
>>> x
242
>>> np.binary_repr(x, width=8)
'11110010'

Результат зависит от разрядности:

>>> x = np.invert(np.array(13, dtype=np.uint16))
>>> x
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])

Оператор ~ может использоваться в качестве сокращения для np.invert на массивах nd.

>>> x1 = np.array([True, False])
>>> ~x1
array([False,  True])

© 2005–2024 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/2.0/reference/generated/numpy.bitwise_invert.html

Spec-Zone.ru

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