提取3D(time,lat,lon)数组中的每个值并创建一个列表或一维数组
问题描述:
请原谅我,如果这很简单,但我是python的新手。我每天都有一个数据点,每个纬度(180度)和经度(360度)和时间(6624)是一个三维数组,具有numpy.shape(时间,纬度,经度)。我试图提取每一个风速并将其放入一个新的数组或列表中,以便我可以绘制直方图或概率密度函数。有没有在Python中提取每个这些值的方法?提取3D(time,lat,lon)数组中的每个值并创建一个列表或一维数组
答
所以如果你做wind_speedjja.shape
你会得到(6624, 180, 360)
?
这不是一个有效的答案,更多的是用嵌套循环进行说明。
all_wsp = np.array([])
mtx = wind_speed.shape
for idx_lat in range(mtx[1]):
for idx_long in range(mtx[2]):
lat_long_wsp = wind_speed[:, idx_lat, idx_long]
# do a plot on lat_long_wsp, or your histogram
all_wsp = np.concatenate((all_wsp, lat_long_wsp))
# all_wsp will be all single values in a flattened array
如果你只是扁平阵列后,做flat_wsp = windspeed.flatten()
。
你的意思是你需要每一行矩阵与拉特,长和时间来生成函数? – skrubber
是的,对于每个经纬度单元,有6624天的风速数据,其中一个值是单个值,并且该点能够查看特定单元格并提取6624个风速来创建直方图。感谢您提供的任何见解。 – laff
提供了几行3D数组,因为切片将根据数组的形状而变化 – skrubber