Список списков смешанных типов в массиве numpy ⇐ Python
Список списков смешанных типов в массиве numpy
У меня есть данные, импортированные из csv, и они хранятся в списке списков как:
data=[['1', '1.013831', '1.713332', '1.327002', '3.674446', '19.995361', '09:44:24', '2.659884'], ['2 ', '1.013862', '1.713164', '1.326761', '3.662183', '19.996973', '09:49:27', '2.668791'], ['3', '1.013817', '1.712084', '1.32 6192 ', '3.658077', '19.997608', '09:54:27', '2.671786']] Я хочу получить массив numpy, чтобы я мог использовать правильное нарезку (мне не нужны pandas или что-то еще, просто старый добрый numpy массив с соответствующими типами данных, а не объект).
Итак, я попробовал очевидное:
arr=np.array(data,dtype='i4,f4,f4,f4,f4,f4,U8,f4') только чтобы получить:
ValueError: недопустимый литерал для int() с основанием 10: '1.013831' Это говорит о том, что numpy рассматривает строки как столбцы, а столбцы — как строки. Что делать? Я также попытался ввести вместо data list(map(tuple,data)), что выдает ошибку, что объект карты не может быть вызван, и я пробовал:
arr=np.asarray(tuple(map(tuple,data)),dtype='i4,f4,f4,f4,f4,f4,U8,f4') отдача
ValueError: не удалось назначить кортеж длиной 20 структуре с 8 полями. Обратите внимание, что исходное количество строк в моем случае — 20.
Итак, как мне получить данные из csv в массив numpy, где я хочу указать тип данных каждого столбца?
У меня есть данные, импортированные из csv, и они хранятся в списке списков как:
data=[['1', '1.013831', '1.713332', '1.327002', '3.674446', '19.995361', '09:44:24', '2.659884'], ['2 ', '1.013862', '1.713164', '1.326761', '3.662183', '19.996973', '09:49:27', '2.668791'], ['3', '1.013817', '1.712084', '1.32 6192 ', '3.658077', '19.997608', '09:54:27', '2.671786']] Я хочу получить массив numpy, чтобы я мог использовать правильное нарезку (мне не нужны pandas или что-то еще, просто старый добрый numpy массив с соответствующими типами данных, а не объект).
Итак, я попробовал очевидное:
arr=np.array(data,dtype='i4,f4,f4,f4,f4,f4,U8,f4') только чтобы получить:
ValueError: недопустимый литерал для int() с основанием 10: '1.013831' Это говорит о том, что numpy рассматривает строки как столбцы, а столбцы — как строки. Что делать? Я также попытался ввести вместо data list(map(tuple,data)), что выдает ошибку, что объект карты не может быть вызван, и я пробовал:
arr=np.asarray(tuple(map(tuple,data)),dtype='i4,f4,f4,f4,f4,f4,U8,f4') отдача
ValueError: не удалось назначить кортеж длиной 20 структуре с 8 полями. Обратите внимание, что исходное количество строк в моем случае — 20.
Итак, как мне получить данные из csv в массив numpy, где я хочу указать тип данных каждого столбца?
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как работает индексация Pytorch со списками списков против списков списков против тензоров
Anonymous » » в форуме Python - 0 Ответы
- 25 Просмотры
-
Последнее сообщение Anonymous
-