Почему я не могу указать маленький конец в numpy dtype

#python-3.x #numpy

Вопрос:

Я попытался определить небольшой тип данных endian размером 2 байта в numpy с помощью:

 import numpy as np


dt = np.dtype('<u2')  # little endian unsigned int
 

Но если я проверю порядок следования этого типа данных по:

 print(dt.byteorder)
 

Это дает мне: «=» не «.

«=»означает в этом случае «аппаратное обеспечение по умолчанию».

Является ли «маленький эндиан» аппаратным по умолчанию или в чем здесь проблема?

Комментарии:

1. Скорее всего, вы сами ответили на свой вопрос. Не знаю, где бы вы купили сегодня крупногабаритную машину. Вместо этого попробуйте создать большой конечный тип и посмотрите, даст ли это другой результат. Всякий раз, когда мне приходилось использовать явно выраженный код в numpy, он всегда работал точно так, как ожидалось.

2. литтл-эндианец-это не общее аппаратное значение по умолчанию, но это собственный интерфейс на вашем конкретном процессоре. Большинство основных процессоров (x86-64) являются малоэндовскими. Некоторые поддерживают как малое конечное (называемое би-конечным), так и большое конечное, например ARM и PowerPC, хотя на практике стек программного обеспечения, как правило, использует формат малого конечного для обеспечения совместимости. Numpy автоматически преобразует малую конечность в собственную конечность, если ваш процессор (или программный стек для процессоров с двумя конечностями) является малочисленным и делает обратное для большой конечности.