我已经到处寻找这个问题的答案,但似乎没有什么真正符合要求。我有非常大的文件,我试图用 ATpy 读取,数据以 numpy 数组的形式出现。对于较小的文件,以下代码就足够了:
sat = atpy.Table('satellite_data.tbl')
从那里我建立了一些变量,我必须在以后进行操作以用于绘图目的。有很多这样的操作:
w1 = np.array([sat['w1_column']])
w2 = np.array([sat['w2_column']])
w3 = np.array([sat['w3_column']])
colorw1w2 = w1 - w2 #just subtracting w2 values from w1 values for each element
colorw1w3 = w1 - w3
等等
但是对于非常大的文件,计算机无法处理。我认为在解析开始之前所有数据都存储在内存中,这对于 2GB 文件是不可行的。那么,我可以用什么来处理这些大文件呢?
我看过很多帖子,人们将数据分解成块并使用for
循环遍历每一行,但鉴于这些文件的性质和操作类型,我认为这对我不起作用我需要在这些阵列上做。我不能只对文件的每一行进行一次操作,因为每一行都包含许多分配给列的参数,在某些情况下,我需要对单个列中的数字进行多项操作。
老实说,我并不真正了解 ATpy 和 numpy 幕后发生的一切。我是 Python 的新手,所以我很欣赏清楚拼写出来的答案(即不依赖大量隐式编码知识)。必须有一种干净的方式来解析它,但我没有找到它。谢谢。