В настоящее время я переписываю некоторый код Python, чтобы сделать его более эффективным, и у меня есть вопрос о сохранении массивов Python, чтобы их можно было повторно использовать/манипулировать позже.
У меня есть большое количество данных, сохраненных в файлах CSV. Каждый файл содержит значения интересующих меня данных с отметками времени, и я достиг точки, когда мне приходится иметь дело с десятками миллионов точек данных. Данные стали настолько большими, что время обработки стало чрезмерным и неэффективным — способ написания текущего кода требует повторной обработки всего набора данных каждый раз, когда добавляются новые данные.
Я хочу сделать следующее:
- Считайте все существующие данные в массивы python
- Сохраните массивы переменных в какой-либо базе данных/файле.
- Затем, когда в следующий раз добавляются новые данные, я загружаю свою базу данных, добавляю новые данные и сохраняю их заново. Таким образом, в любой момент времени необходимо обрабатывать только небольшое количество данных.
- Я хотел бы, чтобы сохраненные данные были доступны для других сценариев Python, но также были достаточно «читаемы человеком», чтобы их можно было обрабатывать в таких программах, как OriginPro или, возможно, даже в Excel.
У меня вопрос: в каком формате лучше сохранять данные? Кажется, HDF5 может иметь все функции, которые мне нужны, но будет ли что-то вроде SQLite иметь больше смысла?
РЕДАКТИРОВАТЬ: Мои данные одномерны. По сути, у меня есть 30 массивов размером (миллионы, 1). Если бы не то, что точек так много, то CSV был бы идеальным форматом! Я вряд ли захочу выполнять поиск отдельных записей --- более вероятно, что я захочу построить небольшие подмножества данных (например, последние 100 часов или последние 1000 часов и т. д.).