«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как объединить массивы NumPy с разными типами данных, сохраняя типы данных?

Как объединить массивы NumPy с разными типами данных, сохраняя типы данных?

Опубликовано 7 ноября 2024 г.
Просматривать:628

How to Combine NumPy Arrays with Different Datatypes While Preserving Data Types?

Объединение массивов с несколькими типами данных в NumPy

Желание объединить массивы, содержащие разные типы данных, в один массив с соответствующими типами данных в каждом столбце порождает вызов. Распространенный подход с использованием np.concatenate(), к сожалению, преобразует весь массив в строковый тип данных, что приводит к неэффективности использования памяти.

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

Массивы записей

Массивы записей позволяют получать доступ к отдельным полям данных через атрибуты. Указав тип данных каждого поля, несколько типов данных можно объединить в один массив:

import numpy as np

a = np.array(['a', 'b', 'c', 'd', 'e'])
b = np.arange(5)
records = np.rec.fromarrays((a, b), names=('keys', 'data'))

print(records)

Вывод:

rec.array([('a', 0), ('b', 1), ('c', 2), ('d', 3), ('e', 4)], 
      dtype=[('keys', '|S1'), ('data', '<i8')])

Структурированные массивы

Структурированные массивы аналогично, предлагая возможность определять тип данных каждого столбца. Однако они не поддерживают доступ к атрибутам, как массивы записей:

arr = np.array([('a', 0), ('b', 1)], 
                      dtype=([('keys', '|S1'), ('data', 'i8')]))

print(arr)

Вывод:

array([('a', 0), ('b', 1)], 
      dtype=[('keys', '|S1'), ('data', '<i8')])

Выбор между записью и структурированным массивом

Выбор между массивами записей и структурированными массивами зависит от индивидуальных случаев использования. Массивы записей обеспечивают удобство доступа к атрибутам, тогда как структурированные массивы могут быть предпочтительными для более сложных структур данных. Оба подхода предлагают удобный способ объединения массивов с разными типами данных в NumPy, обеспечивая гибкость и эффективность манипулирования данными.

Заявление о выпуске Эта статья перепечатана по адресу: 1729504697. В случае каких-либо нарушений, пожалуйста, свяжитесь с [email protected], чтобы удалить ее.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3