1
8
有很多选择。我将只讨论HDF5,因为我有使用这种格式的经验。 优势 :可移植(可在Python之外读取)、本机压缩、内存不足功能、元数据支持。 缺点 :依赖于单个低级C API,数据可能作为单个文件损坏,删除数据不会自动减小大小。
根据我的经验,为了性能和便携性,
避免
存储阵列
压缩(&A);分块
有许多压缩选项,例如。
分块是另一种选择,当与从内存中读取数据的方式一致时,它可以显著提高性能。 添加一些属性
存储字典
内存不足访问
没有什么可以替代阅读
|
2
1
一种实用的方法是将元数据直接嵌入Numpy数组中。其优点是,正如您所希望的那样,它没有额外的依赖关系,并且在代码中使用非常简单。 然而,这并不能完全回答您的问题,因为您仍然需要一种机制来保存数据,我建议使用 jpp 使用HDF5的解决方案。
将元数据包括在
它将给出(来自上面链接的代码)
通过以下方式保存数据
|
3
0
这是一个有趣的问题,尽管我认为它是一个非常开放的问题。
文本片段
各种数据块的小集合
看见 here 讨论pickle和npz之间的差异(但主要是npz针对numpy阵列进行了优化)。
就我个人而言,如果您不存储Numpy数组,我会使用pickle,甚至实现一个快速
大型对象的集合
同样,这个想法非常相似:您正在创建一个HDFStore,这是一个很大的字典,您可以在其中存储(几乎任何)对象。其好处是,该格式通过利用类似值的重复,以更智能的方式利用空间。当我使用它存储大约2GB的数据帧时,它几乎可以将其减少整整一个数量级(约250MB)。
最后一位玩家:
他们俩都刚刚开始 Ursalabs 就在几周前,这将继续推动这一举措和类似举措的发展。 |
4
0
您陈述了此问题的原因:
我可以提出一个不同于Stata的范例吗?注释和特征似乎非常有限,仅限于文本。相反,您应该使用 Jupyter Notebook 用于您的研究和数据分析项目。它提供了一个丰富的环境来记录您的工作流程,并在您进行分析和研究时捕获详细信息、想法和想法。它可以很容易地共享,并且可以随时进行演示。 这里是 a gallery of interesting Jupyter Notebooks 跨越多个行业和学科,展示笔记本电脑的众多功能和使用案例。它可能会扩展您的视野,而不仅仅是试图设计一种将简单文本片段标记到数据中的方法。 |
5
0
我同意JPP的观点,hdf5存储是一个很好的选择。他的解决方案和我的不同之处在于,我的使用熊猫数据帧,而不是numpy数组。我更喜欢dataframe,因为它允许混合类型、多级索引(甚至datetime索引,这对我的工作非常重要)和列标签,这有助于我记住不同的数据集是如何组织的。此外,Pandas还提供了一系列内置功能(很像numpy)。使用Pandas的另一个好处是它内置了hdf创建者(即Pandas.DataFrame.to\u hdf),我觉得这很方便 将数据帧存储到h5时,您可以选择存储元数据字典,它可以是您的自我注释,或者不需要存储在数据帧中的实际元数据(我也使用它来设置标志,例如{'is\u agl':True,'scale\u factor':100,'ready\u corrected':False等)。在这方面,使用numpy数组和数据帧之间没有区别。有关完整的解决方案,请参阅 my original question and solution here. |
6
0
jpp的回答相当全面,只是想提到,对于熊猫v22,拼花地板是非常方便和快速的选择,与csv相比几乎没有缺点(接受咖啡休息)。 在撰写本文时,您还需要
在添加信息方面,您拥有附加到数据的元数据
要想把这个还给熊猫:
|
July · 如何定义数字间隔,然后四舍五入 1 年前 |
user026 · 如何根据特定窗口的平均值(行数)创建新列? 1 年前 |
Ashok Shrestha · 需要追踪特定的颜色线并获取坐标 1 年前 |
Nicote Ool · 在FastApi和Vue3中获得422 1 年前 |
Abdulaziz · 如何对集合内的列表进行排序[重复] 1 年前 |
asmgx · 为什么合并数据帧不能按照python中的预期方式工作 1 年前 |