Mar*_*dan 3 python arrays numpy
我想阅读多个文件的内容,单独处理它们的数据(因为性能和硬件资源),并将我的结果写入一个"大"netCDF4文件.
现在我能够读取文件,处理他们的数据,但是我很难处理产生的多个数组.我无法正确合并它们.
我有一个3d数组(时间,长度,纬度),包含我每天的计算值.我喜欢做的是将我所有的数组合并到一个大数组中,然后再将其写入我的netCDF4文件.(一个阵列中的所有日子)
这里有两个示例数组:
我的预期结果是:
我怎样才能实现这种结构?
allDays=day1+day2我的数据将被聚合.我用的时候:
allDays=[]
allDays.append(day1)
allDays.append(day2)
Run Code Online (Sandbox Code Playgroud)
我的数据将被一个新数组包围.
仅供参考:我使用的是Ubuntu 14.04和Python:3.5(Anaconda)
Leo*_*iro 14
现在你可以用 python 3 做这样的事情:
tst1 = [1, 2, 3]
tst2 = [4, 5, 6]
ts3 = [*tst1, *tst2]
Run Code Online (Sandbox Code Playgroud)
结果:[1, 2, 3, 4, 5, 6]
当你这样做
allDays=[]
allDays.append(day1)
allDays.append(day2)
Run Code Online (Sandbox Code Playgroud)
您正在列出指向现有数据的指针,而不是重新打包数据.你可以这样做:
allDays=[]
allDays.append(day1[:])
allDays.append(day2[:])
Run Code Online (Sandbox Code Playgroud)
现在它将把数据从day1复制到新的allDays数组中.这会使内存使用量增加一倍,因此最好del day1在每次添加到allDays之后发出.
说了这么多,如果你使用Pandas(通常推荐用于时间序列数据)或Numpy,这整个事情会更快,并且使用更少的内存.Numpy数组不能保存像python列表那样的指针,所以隐含了副本.希望为你清除一些东西:)我也强烈推荐这个视频由Ned
| 归档时间: |
|
| 查看次数: |
17813 次 |
| 最近记录: |