如何在Python中打开.dat.gz文件并从中提取数据



我正试图从以下文件中提取数据:

https://slac.stanford.edu/~behroozi/BPlanck_Trees/tree_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行只有一个数字,这导致numpy在每行实际有57个元素时,期望每行有一个元素。我在第47行加了一个"#"在数字前面。然后np.genfromtxt处理了一个截断的例子。

我说";"截断";,因为整个文件非常庞大。我刚抽出前1000行来尝试导入。您确定要将2300万行全部读取到内存中吗?在一个numpy数组中,它的大小约为10 GB。你的机器有多少内存?

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

相关内容

  • 没有找到相关文章

最新更新