Python 创建年最大降雨量地图的程序的数组维数问题

Python 创建年最大降雨量地图的程序的数组维数问题,python,arrays,matplotlib,jupyter-notebook,dimension,Python,Arrays,Matplotlib,Jupyter Notebook,Dimension,我正在尝试创建一张给定年份的年最大降雨量地图 我有十个NC文件,每个文件都是3小时降雨量,包含5年的数据。对于我正在使用的降雨数据,它是一个3D数组:pr(time,lat,lon)带有维度(146145192) 我需要用Matplotlib找到每年的最大降雨量,并创建一张该数据的世界地图。考虑到每个NetCDF文件有5年的时间,我不确定这样做的最佳方式,这意味着我需要在每个文件14616个数据点中找到5个最大值,总共10个文件 我的第一个想法是按年份划分文件的各个部分(现在只从一个文件开始):

我正在尝试创建一张给定年份的年最大降雨量地图

我有十个NC文件,每个文件都是3小时降雨量,包含5年的数据。对于我正在使用的降雨数据,它是一个3D数组:
pr(time,lat,lon)
带有维度
(146145192)

我需要用Matplotlib找到每年的最大降雨量,并创建一张该数据的世界地图。考虑到每个NetCDF文件有5年的时间,我不确定这样做的最佳方式,这意味着我需要在每个文件14616个数据点中找到5个最大值,总共10个文件

我的第一个想法是按年份划分文件的各个部分(现在只从一个文件开始):

然后使用
np.max
计算每个值的最大值,并使用
np.arry
用这些值创建一个新数组。问题是这会导致一个一维数组,我遇到了一个问题,因为我的输入必须是二维数组。(否则会导致错误:
TypeError:Input z必须是2D数组。

我尝试用
np.重塑数组(重塑为
(2L,5L)
),我成功地做到了这一点,但在尝试创建图形时出现以下错误:
TypeError:x的长度必须是z中的列数。

我相信这是因为我创建的新阵列中不包含lat和lon数据,但我对此不完全确定

我想知道是否有更好的方法来找到最大值,然后像我那样将其分离,因为需要对大量数据进行排序,我不确定是否有更有效的方法

如果没有,我想知道如何格式化我的新数组,以便它可以用于创建地图。下面我还有代码来创建导致
TypeError:x的长度必须是z中的列数。

yrmax1
是新的最大降雨量重塑阵列,形状为
(2L,5L)


谢谢

你为什么不把它全部写进一张表呢?听起来并没有那么多数据。这是一个公平的观点,我可能也可以这样做。它只是增加了一些额外的工作,我希望有一种更简单的方法来做,因为我必须用多个不同的模型来做多次。如果必须做多次,最好编写代码来完成整个工作。当您学习编写代码时,您只会获得一点时间,但在一致性方面会获得很多。您对如何进行这项工作有什么建议吗?为什么不将其全部写入一个表中?听起来并没有那么多数据。这是一个公平的观点,我可能也可以这样做。它只是增加了一些额外的工作,我希望有一种更简单的方法来做,因为我必须用多个不同的模型来做多次。如果必须做多次,最好编写代码来完成整个工作。当你正在学习编码时,你只会获得一点时间,但你会在一致性方面获得很多。你对如何进行这项工作有什么建议吗?
a = pr[0:2928]
b = pr[2929:5849]
c = pr[5850:8769]
d = pr[8770:11689]
e = pr[11690:14617]
plt.figure(1,figsize=(10, 8))

map = Basemap(projection='cyl',\
            llcrnrlat=LLlat,urcrnrlat=URlat,\
            llcrnrlon=LLlon,urcrnrlon=URlon,\
            rsphere=6371200.,resolution='i')
map.drawcoastlines(linewidth=0.5) 
lons,lats = map(lon,lat)
cs = plt.contourf(lons,lats,yrmax1,np.linspace(-2,1,30),cmap=plt.cm.RdYlBu_r, extend='both')  
plt.colorbar(cs,orientation='horizontal')
plt.xlabel('Longitude')
plt.ylabel('Latitude')

plt.show()