繁体   English   中英

如何在 Python 中从这个 .dat.gz 文件中打开和提取数据?

[英]How do I open and extract data from this .dat.gz file in Python?

我正在尝试从此文件中提取数据:

https://slac.stanford.edu/~behroozi/BPlanck_Trees/tree_0_0_0.dat.gz

它是一个 .dat.gz 文件。 我通过终端下载并解压缩它,使其成为 .dat 文件。 但是,当我运行时:

f = open('tree_0_0_0.dat', 'r')
data = np.genfromtxt(f)

我得到:

array([],dtype=float64)

为什么它是一个空数组。 我如何提取这里的数据? 我是否可能错误地解压缩了它?

任何帮助深表感谢!

您应该简单地查看 .dat 文件的前 100 行,看看它是否符合您的预期。 您的 .dat 文件的大小是多少?

该文件的第 47 行只有一个数字,然后当每行确实有 57 个元素时,这会导致 numpy 期望每行一个元素。 我通过在数字前面放一个“#”来注释掉第 47 行。 然后np.genfromtxt处理了一个截断的例子。

我说“截断”,因为整个文件是巨大的。 我只是拉了前 1000 行来尝试导入。 您确定要将所有 2300 万行读入内存吗? 它将在 numpy 数组中占用 10 GB 的数量级。 你的机器有多少内存?

您可能想考虑如何串行处理这些数据,而不是一次读取整个内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM