numpy.invert
-
numpy.invert(x[, out]) = <ufunc 'invert'> -
Вычисление побитового инвертирования (или побитового НЕ) поэлементно.
Вычисляет побитовое НЕ от двоичного представления целых чисел во входных массивах. Данный ufunc реализует оператор C/Python
~.Для целых входных данных со знаком возвращается дополнительный код. В системе дополнительного кода отрицательные числа представлены дополнительным кодом абсолютного значения. Это наиболее распространённый метод представления целых чисел со знаком на компьютерах [R32]. N-битная система дополнительного кода может представлять любое целое число в диапазоне
до
.Параметры: x1 : array_like
Обрабатываются только целочисленные и булевы типы.
Возвращает: out : array_like
Результат.
См. также
bitwise_and,bitwise_or,bitwise_xor,logical_not-
binary_repr - Возвращает двоичное представление входного числа в виде строки.
Примечания
bitwise_notявляется псевдонимом дляinvert:>>> np.bitwise_not is np.invert True
Ссылки
[R32] (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.12.0/reference/generated/numpy.invert.html