numpy.char.chararray.byteswap#

метод

char.chararray.обмен байтами(inplace=False)#

Поменять байты элементов массива местами

Переключение между порядком байт от младшего к старшему и от старшего к младшему путём возврата массива с изменённым порядком байт, опционально изменяя порядок на месте. Массивы байтовых строк не изменяются. Действительная и мнимая части комплексного числа изменяются по отдельности.

Параметры:
inplacebool, необязательно

Если True, поменять байты местами на месте, по умолчанию False.

Возвращает:
выходndarray

Массив с измененным порядком байтов. Если inplace является True, это представление 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)