我有一个巨大的文件,第一行是一个字符串,其他行表示整数。列数是可变的,取决于一行的情况。
我有一个全局列表,在其中保存中间结果。arr_of_arr
是一个由浮点数列表组成的列表,长度约为5000。该数组的每个元素(再次是数组)的长度为100,000到10,000,000。元素的最大长度可能会有所不同,因此我无法在创建arr_of_arr
时提前扩展每个元素。
在我处理完整个文件后,我人为地添加了一些内容,并计算每个全局数组的元素平均值并绘制图表。max_size_arr
是数组中最长元素的长度(当我迭代文件行时计算它)。
arr = [x+[0]*(max_size_arr - len(x)) for x in arr_of_arr]
我需要对数组进行逐元素的均值计算。 例如, [[1,2,3],[4,5,6],[0,2,10]] 的计算结果为 [5/3,9/3,19/3](即每个数组中第一个元素的均值,每个数组中第二个元素的均值等等)。
arr = np.mean(np.array(arr),axis=0)
但是,这会导致巨大的内存消耗(根据集群信息可能达到100GB)。在结构上有什么好的解决方案可以减少内存消耗?NumPy数组是否比Python中的普通数组更轻?
arr_of_arr
应该是一个列表。将其变成对象类型的数组只会使事情更加复杂。 - hpaulj