对此我是陌生的,因此,如果我丢失了一些东西,我深表歉意。我试图获取具有三个维度(时间,纬度,经度)的数据集的概率范围。对于1个“单元格”(单纬度/经度组合),我执行了以下操作:
# create some data
mu, sigma = 0, 0.1
s = np.random.normal(mu, sigma,900)
# get 90th - 100th percentiles
t_90x_ref= np.percentile(s, 90,interpolation="nearest")
t_100x_ref=np.percentile(s,100,interpolation="nearest")
# apply gaussian_kde function
AbnomRef_pdf= gaussian_kde(s)
# get probability range
Prob_range_90_100_Ref=AbnomRef_pdf.integrate_box_1d(t_90x_ref, t_100x_ref)*100
我现在想沿时间轴(具有900个时间步,如上)对每个网格单元(经/纬组合)重复此精确过程。
lat= np.linspace(-38.28,34.76, 167)
lon = np.linspace(143.92,207.72, 146)
# 3dim data
Anomalies_ref = np.random.rand(900, 167,146)
# get percentiles for 3 dim data
t_90x_ref= np.percentile(Anomalies_ref, 90,interpolation="nearest", axis=0)
在这里,我陷入了gaussian_kde函数的困扰(既没有for循环有效,也没有能够拉平gaussian_kde结果)。我见过这种情况Using scipy.stats.gaussian_kde with 2 dimensional data,但无法真正将其应用于我的问题。最终,我的目标是获得形状为(167,146)的Prob_range_90_100_Ref
任何帮助将不胜感激!
谢谢!