![](/img/trans.png)
[英]loading the .dat.gz data opened in python into a dataframe
[英]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.