Python numpy.invert函数方法的使用

NumPy(Numerical Python的缩写)是一个开源的Python科学计算库。使用NumPy,就可以很自然地使用数组和矩阵。NumPy包含很多实用的数学函数,涵盖线性代数运算、傅里叶变换和随机数生成等功能。本文主要介绍一下NumPy中invert方法的使用。

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操作符~

对于有符号整数输入,将返回两者的补码。 在二进制补码系统中,负数由绝对值的二进制补码表示。 这是在计算机上表示有符号整数的最常用方法[1]。 N位二进制补码系统可以表示范围内的每个整数。

参数 :

x :array_like

仅处理整数和布尔类型。

out :ndarray, None, 或 ndarray的tuple 和 None, 可选

结果存储的位置。 如果提供,它必须具有输入传递到的shape。

 如果未提供或没有,则返回一个新分配的数组。 

元组(只能作为关键字参数)的长度必须等于输出的数量。

where :array_like, 可选

此条件通过输入传递。 在条件为True的位置,

将out数组设置为ufunc结果。

 在其他地方,out数组将保留其原始值。 请注意,

如果通过默认的out = None创建了未初始化的输出数组,

则条件为False的数组中的位置将保持未初始化状态。

**kwargs

有关其他仅关键字的参数,请参见ufunc文档。

返回值 :

out :ndarray 或 scalar

结果。 如果x是标量,则这是标量。

Notes

bitwise_not是invert的别名:

>>> np.bitwise_not is np.invert
True

例子

我们已经看到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])
推荐阅读
cjavapy编程之路首页