提取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()
。
回答:
您的数据很大,所以您必须先采用全球方法。
当作玩具例子:
from pylab import * wind = rand(662,18,36)
means = wind.mean(axis=0)
subplot(121)
hist(means.ravel(),100)
subplot(122)
imshow(means)
colorbar()
show()
然后你可以决定你将调整哪些区域。
以上是 提取3D(time,lat,lon)数组中的每个值并创建一个列表或一维数组 的全部内容, 来源链接: utcz.com/qa/259683.html