`numpy`: что такое объединение dtype в `numpy` и как его определить?Python

Программы на Python
Anonymous
`numpy`: что такое объединение dtype в `numpy` и как его определить?

Сообщение Anonymous »

Предположим, у меня есть такой массив:

Код: Выделить всё

x = np.array([["Hello", 0, 1], ["World", 1, 2]], dtype=np.object_)
Мне бы хотелось получше определить dtype для этого массива. Точнее, я хочу, чтобы массив выделял для каждого элемента столько байтов, сколько потребуется для самого большого элемента.
Это то, что я называю «объединением» типов.< /p>
Ответ на вопрос Объединение в стиле c с numpy dtypes? относится к «объединенным типам данных», разрешенным в numpy после 1.7+.
Это соответствующий раздел в документации numpy. Документация по типам объединения относится к документации (base_dtype, new_dtype) в разделе о типах данных под названием «Определение и создание типов данных».

Код: Выделить всё

(base_dtype, new_dtype)В документации 
говорится кое-что интересное (выделено мной):

Эта форма также позволяет указывать типы структур с перекрывающимися полями, функционируя аналогично Тип 'union' в C. Однако такое использование не рекомендуется, и предпочтителен механизм объединения.

Что именно такое «профсоюзный механизм»? Поиск его в документации numpy не привел меня ни к чему, что четко выделялось бы в качестве упомянутого механизма. Что еще более важно, я не могу сделать что-то подобное в формате (base_dtype, new_dtype): (np.object_, (np.uint32, np.uint32)), потому что np.object_ не может использоваться как base_dtype.
Мое лучшее предположение на данный момент: документация для numpy утверждает, что мы можем разрешить перекрытие полей структурированного массива... что дало бы профсоюзное поведение? В конце концов, в документации по структурированным массивам указано (выделено мной):

Для этих целей они поддерживают специализированные функции, такие как подмассивы, вложенные типы данных, и объединения. и разрешить контроль над расположением структуры в памяти.

Документация достаточно смутила меня относительно того, какой механизм является предпочтительным для создания "тип объединения"...

Подробнее здесь: https://stackoverflow.com/questions/786 ... -define-it

Вернуться в «Python»