Как интерпретировать вывод Python dtype = ' - PullRequest
1 голос
/ 09 июля 2019

Я прохожу онлайн-курс, и следующее предположительно демонстрирует, что «массивы NumPy: содержат только один тип»:

In [19]: np.array([1.0, "is", True])
Out[19]:
array(['1.0', 'is', 'True'],
dtype='<U32')

Сначала я подумал, что вывод был формой сообщения об ошибке,но это не подтверждается поиском в сети.На самом деле, я не встречал объяснений .... кто-нибудь может объяснить, как интерпретировать вывод?

Ответы [ 2 ]

2 голосов
/ 09 июля 2019

Это полностью объяснено в руководстве :

Несколько типов строк могут быть преобразованы.Для распознанных строк можно указать '>' (с прямым порядком байтов), '<' (с прямым порядком байтов) или '=' (аппаратный, по умолчанию), чтобы указать порядок байтов.

[...]

Первый символ указывает тип данных, а оставшиеся символы указывают количество байтов на элемент, за исключением Unicode, где он интерпретируется как количество символов.Размер элемента должен соответствовать существующему типу, иначе возникнет ошибка.Поддерживаемые типы:

[...]

'U'        Unicode string

Итак, строка Unicode с прямым порядком байтов из 32 символов.

1 голос
/ 09 июля 2019

dtype='<U32' - 32-символьная строка с прямым порядком байтов.

Документация для dtypes более подробно описывает каждого персонажа.

'U' Unicode string

Several kinds of strings can be converted. Recognized strings can be prepended with '>' (big-endian), '<' (little-endian), or '=' (hardware-native, the default), to specify the byte order.

Примеры:

dt = np.dtype('f8')   # 64-bit floating-point number
dt = np.dtype('c16')  # 128-bit complex floating-point number
dt = np.dtype('a25')  # 25-length zero-terminated bytes
dt = np.dtype('U25')  # 25-character string```
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...