簡體   English   中英

如何在循環中使用numpy從python中的2D數組高效創建3D數組?

[英]How to efficiently create a 3D array from 2D arrays in python using numpy in a loop?

我正在提取NetCDF文件中的變量。 這些文件很大,我希望循環次數最少。 每個變量是162x174,我大約有200個這樣的文件。 我最后想要一個像Matlab中那樣的變量,它是3d-162x174x200。

在代碼中,除了追加,我嘗試了dstack和vstack,但是它們都不起作用。 我也不確定串聯會像2x162x174或162x174x2那樣發生。

 from netCDF4 import Dataset
 import os 
 import wrf 
 import numpy as np 
 import glob

 os.chdir(r'G:\WRF')
 ctt_wrf=[]
 for file in glob.glob('wrfout_*'):
    ncfile = Dataset(file)
    ctt=wrf.getvar(ncfile, "ctt")
    ctt_wrf.append(ctt)

 np.array(ctt_wrf).shape

如果每個文件中的數據都是原子的,則您可能最終希望得到一個數組,該數組的大小為:number_of_files x 162 x 174,在這種情況下,您使用的方法的形狀為200 x 162 x 174

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM