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
~.Для целочисленных входных данных со знаком возвращается дополнение до двух. В системе дополнения до двух отрицательные числа представлены дополнением до двух абсолютного значения. Это наиболее распространенный метод представления целых чисел со знаком на компьютерах [R37]. N-битная система дополнения до двух может представлять каждое целое число в диапазоне
до
.
Параметры: 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
Ссылки
[R37] (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])
-
© 2005–2019 NumPy Developers
Licensed under the 3-clause BSD License.
https://docs.scipy.org/doc/numpy-1.14.5/reference/generated/numpy.invert.html