【发布时间】:2012-06-03 17:30:07
【问题描述】:
我目前正在重写一些 python 代码以使其更高效,我有一个关于保存 python 数组以便以后可以重用/操作的问题。
我有大量数据,保存在 CSV 文件中。每个文件都包含我感兴趣的数据的时间戳值,并且我已经达到了必须处理数千万个数据点的地步。现在数据变得如此之大,以至于处理时间过多且效率低下——当前代码的编写方式每次添加一些新数据时都必须重新处理整个数据集。
我想做的是这样的:
- 将所有现有数据读入 python 数组
- 将变量数组保存到某种数据库/文件中
- 然后,下次添加更多数据时,我会加载我的数据库,添加新数据,然后重新保存。这样,任何时候都只需要处理少量数据。
- 我希望保存的数据能够被更多的 python 脚本访问,但也能够相当“人类可读”,以便可以在 OriginPro 甚至 Excel 等程序中进行处理。
我的问题是:保存数据的最佳格式是什么? HDF5 似乎拥有我需要的所有功能——但是像 SQLite 这样的东西会更有意义吗?
编辑:我的数据是一维的。我基本上有 30 个大小为(百万,1)的数组。如果不是因为有这么多点,那么 CSV 将是一种理想的格式!我不太可能想要查找单个条目——更有可能是我可能想要绘制数据的小子集(例如过去 100 小时或过去 1000 小时等)。
【问题讨论】:
-
您能否就您的问题提供一些更具体的信息?例如,数据的维度是多少。您是在处理包含少量元素的多个数组,还是处理包含大量元素的少量数组?您认为您需要对这些数据运行复杂的查询吗?如果您的数据是多维的,并且您可以从查询中受益,那么 SQLite 可能是有意义的。
-
我已按要求添加了一些信息。基本上我有少量的一维数组,但每个数组都有大约数百万个元素。
标签: python database arrays save hdf5