我想读取多个文件的内容,分别处理它们的数据(由于性能和硬件资源),然后将结果写入一个“大” netCDF4文件中。
现在,我能够读取文件,处理它们的数据,但是我很难处理生成的多个数组。我无法正确合并它们。
我有一个3d数组(时间,长,纬度),其中包含我每天的计算值。我想做的是将我拥有的所有阵列合并到一个大阵列中,然后再将其写入netCDF4文件。 (整天排列在一起)
这里是两个示例数组:
我的预期结果是:
我怎样才能达到这种结构?
allDays=day1+day2
时,我的数据将被汇总。 allDays=[]
allDays.append(day1)
allDays.append(day2)
我的数据将被新数组包围。
仅供引用:我正在使用Ubuntu 14.04和Python:3.5(Anaconda)
最佳答案
当你做
allDays=[]
allDays.append(day1)
allDays.append(day2)
您是在创建指向现有数据的指针的列表,而不是重新打包数据。您可以这样做:
allDays=[]
allDays.append(day1[:])
allDays.append(day2[:])
现在,它将数据从第1天复制到新的allDays数组中。这将使您的内存使用量增加一倍,因此最好在每次添加allDay之后发出
del day1
。话虽如此,如果您使用Pandas(通常建议用于时间序列数据)或Numpy,则整个过程会更快,并且占用的内存也更少。 numpy数组无法像python列表一样容纳指针,因此暗含了该副本。希望能为您解决一些问题:)我也强烈推荐内德(Ned)的this video