#python-3.x #numpy
#python-3.x #numpy
Вопрос:
Я использую np.genfromtxt
для чтения данных смешанного типа из внешнего файла:
data = np.genfromtxt(filename, dtype='U10,U8,f,f,f,f,f,f')
Если бы тип моих данных был однородным, я мог бы получить доступ ко второму столбцу моих данных, выполнив column_two = data[:,2]
. Однако, поскольку я использую структурированный dtype, я не могу просто сделать data[:,2]
, поскольку это приводит к IndexError: too many indices for array
. Есть ли какой-либо способ эффективно выбрать n-й столбец data
для использования в дальнейшей обработке?
Ответ №1:
Итак, проблема в том, что структурированные типы данных не поддерживают индексацию столбцов. Способ, который я нашел, чтобы исправить это, и способ, который кажется наиболее органичным, заключается в использовании «Доступа к полю», а именно.
data = np.genfromtxt(filename, dtype=[('date', str), ('time', str), ('az', np.float64), ...)
Таким образом, для доступа к столбцу «время» мы можем просто использовать data['time']
.