Python 在循环中组合numpy数组

Python 在循环中组合numpy数组,python,arrays,loops,numpy,append,Python,Arrays,Loops,Numpy,Append,我使用for循环在一个目录中打开12个文件,每个文件代表一年中的一个月,形状如下所示: (31, 180, 140) (28, 180, 140) (31, 180, 140) (30, 180, 140) (31, 180, 140) (30, 180, 140) (31, 180, 140) (31, 180, 140) (30, 180, 140) (31, 180, 140) (30, 180, 140) (31, 180, 140) 我试图使用append将这些文件合并到一个列表中,

我使用
for
循环在一个目录中打开12个文件,每个文件代表一年中的一个月,形状如下所示:

(31, 180, 140)
(28, 180, 140)
(31, 180, 140)
(30, 180, 140)
(31, 180, 140)
(30, 180, 140)
(31, 180, 140)
(31, 180, 140)
(30, 180, 140)
(31, 180, 140)
(30, 180, 140)
(31, 180, 140)
我试图使用
append
将这些文件合并到一个列表中,如图所示:

directory = r"C:\Users\matth\Downloads\TRMM_3B42RT"
for root, dirs, filenames in os.walk(directory):
    precip_subsetland2010 = []
    for f in filenames:
        if f.startswith("3B42RT_Daily.2010"):
            log = open(os.path.join(root, f), 'r')
            datapath2 = (("C:\\Users\\matth\\Downloads\\TRMM_3B42RT\\") + f)
            f = Dataset(datapath2)

            latbounds = [ -45 , -10 ]
            lonbounds = [ 105, 150 ] 
            lats = f.variables['lat'][:] 
            lons = f.variables['lon'][:]

            # latitude lower and upper index
            latli = np.argmin( np.abs( lats - latbounds[0] ) )
            latui = np.argmin( np.abs( lats - latbounds[1] ) ) 

            # longitude lower and upper index
            lonli = np.argmin( np.abs( lons - lonbounds[0] ) )
            lonui = np.argmin( np.abs( lons - lonbounds[1] ) )

            precip_subset = f.variables['precipitation'][ : , lonli:lonui , latli:latui ]
            precip_subsetland2010.append(precip_subset)
            precipsubsetland2010 = np.asarray(precip_subsetland2010)
            print(precipsubsetland2010.shape)
但是,我得到一个输出,如图所示:

directory = r"C:\Users\matth\Downloads\TRMM_3B42RT"
for root, dirs, filenames in os.walk(directory):
    precip_subsetland2010 = []
    for f in filenames:
        if f.startswith("3B42RT_Daily.2010"):
            log = open(os.path.join(root, f), 'r')
            datapath2 = (("C:\\Users\\matth\\Downloads\\TRMM_3B42RT\\") + f)
            f = Dataset(datapath2)

            latbounds = [ -45 , -10 ]
            lonbounds = [ 105, 150 ] 
            lats = f.variables['lat'][:] 
            lons = f.variables['lon'][:]

            # latitude lower and upper index
            latli = np.argmin( np.abs( lats - latbounds[0] ) )
            latui = np.argmin( np.abs( lats - latbounds[1] ) ) 

            # longitude lower and upper index
            lonli = np.argmin( np.abs( lons - lonbounds[0] ) )
            lonui = np.argmin( np.abs( lons - lonbounds[1] ) )

            precip_subset = f.variables['precipitation'][ : , lonli:lonui , latli:latui ]
            precip_subsetland2010.append(precip_subset)
            precipsubsetland2010 = np.asarray(precip_subsetland2010)
            print(precipsubsetland2010.shape)
输出:

(1, 31, 180, 140)
(2,)
(3,)
(4,)
(5,)
(6,)
(7,)
(8,)
(9,)
(10,)
(11,)
(12,)

我最终希望将数据添加到一个列表中,然后转换成一个具有
(365、180、140)
形状的数组。我怎样才能做到这一点?这是
append
的正确应用吗?

在循环中,只需将
precip\u subset
附加到列表中即可:

precip_subsetland2010.append(precip_subset)
在循环外部,调用,以垂直堆叠数据

output = np.vstack(precip_subsetland2010)

打印
output.shape
应该提供类似
(X,180,140)
X
是组成数组的所有行的总和)

你们需要更多的信息来回答这个问题吗?
precip\u subset
有你们提到的形状吗?打印出它的形状。@cᴏʟᴅsᴘᴇᴇᴅ: 我在开头打印的形状列表是12个文件的
precip_subset
的形状。