numpy.char.chararray.byteswap#

方法

char.chararray.byteswap(inplace=False)#

交换数组元素的字节

通过返回一个字节序交换的数组,在低位优先(low-endian)和高位优先(big-endian)数据表示之间切换,可选择原地(in-place)交换。字节字符串数组不进行交换。复数的实部和虚部单独进行交换。

参数:
inplace布尔型, 可选

如果为True,则原地(in-place)交换字节,默认为False

返回:
outndarray

字节序交换后的数组。如果inplaceTrue,则这是对自身的视图(view to self)。

示例

>>> import numpy as np
>>> A = np.array([1, 256, 8755], dtype=np.int16)
>>> list(map(hex, A))
['0x1', '0x100', '0x2233']
>>> A.byteswap(inplace=True)
array([  256,     1, 13090], dtype=int16)
>>> list(map(hex, A))
['0x100', '0x1', '0x3322']

字节字符串数组不进行交换

>>> A = np.array([b'ceg', b'fac'])
>>> A.byteswap()
array([b'ceg', b'fac'], dtype='|S3')

A.view(A.dtype.newbyteorder()).byteswap()会生成一个值相同但在内存中表示不同的数组

>>> A = np.array([1, 2, 3],dtype=np.int64)
>>> A.view(np.uint8)
array([1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0,
       0, 0], dtype=uint8)
>>> A.view(A.dtype.newbyteorder()).byteswap(inplace=True)
array([1, 2, 3], dtype='>i8')
>>> A.view(np.uint8)
array([0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0,
       0, 3], dtype=uint8)