Обмен байтами в NumPy
Почти на всех машинах многобайтовые объекты хранятся как последовательности идущих подряд байтов. Порядок байтов — это правило хранения для программных объектов, занимающих несколько байтов.
-
Режим big-endian:Означает, что старший байт данных хранится по младшему адресу памяти, а младший байт — по старшему адресу памяти. Этот режим хранения чем-то напоминает обработку данных как строки по порядку: адреса увеличиваются от меньшего к большему, а данные размещаются от старшего к младшему; это соответствует нашим привычкам чтения.
-
Режим little-endian:Означает, что старший байт данных хранится по старшему адресу памяти, а младший байт — по младшему адресу памяти. Этот режим хранения эффективно объединяет уровень адреса с весом битов данных: часть по старшему адресу имеет большой вес, а часть по младшему адресу — малый вес.
Например, в языке C переменная int x имеет адрес 0x100, поэтому значение соответствующего ей выражения адреса &x равно 0x100. Четыре байта переменной x будут храниться в позициях памяти 0x100, 0x101, 0x102, 0x103.

numpy.ndarray.byteswap()
Функция numpy.ndarray.byteswap() преобразует порядок байтов каждого элемента в ndarray между big-endian и little-endian.
Пример
Результат вывода:
我们的数组是: [ 1 256 8755] 以十六进制表示内存中的数据: <map object at 0x104acb400> 调用 byteswap() 函数: [ 256 1 13090] 十六进制形式: <map object at 0x104acb3c8>Другие расширения