Spec-Zone.ru › NumPy 1.13

numpy.invert

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

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

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

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

Параметры:

x : array_like

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

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

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

where : array_like, необязательно

Значения True указывают на вычисление ufunc в этом положении, значения False указывают на оставление значения в выходе без изменений.

**kwargs

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

Возвращает:

out : array_like

Результат.

См. также

bitwise_and, bitwise_or, bitwise_xor, logical_not

binary_repr
Возвращает двоичное представление входного числа в виде строки.

Примечания

bitwise_not является псевдонимом для invert:

>>> np.bitwise_not is np.invert
True

Ссылки

[R35] (1, 2) Википедия, «Дополнительный код», http://en.wikipedia.org/wiki/Two’s_complement

Примеры

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

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

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

>>> np.invert(np.array([13], dtype=uint16))
array([65522], dtype=uint16)
>>> np.binary_repr(x, width=16)
'0000000000001101'
>>> np.binary_repr(65522, width=16)
'1111111111110010'

При использовании целых типов со знаком результат является дополнением до двух для результата для беззнакового типа:

>>> np.invert(np.array([13], dtype=int8))
array([-14], dtype=int8)
>>> np.binary_repr(-14, width=8)
'11110010'

Булевы значения также принимаются:

>>> np.invert(array([True, False]))
array([False,  True], dtype=bool)

© 2008–2017 NumPy Developers
Licensed under the NumPy License.
https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.invert.html

Spec-Zone.ru

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