将scipy.stats.kde gaussian_kde函数应用于每个网格单元

时间:2018-07-30 19:27:29

标签: python 3d kde

对此我是陌生的,因此,如果我丢失了一些东西,我深表歉意。我试图获取具有三个维度(时间,纬度,经度)的数据集的概率范围。对于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

任何帮助将不胜感激!

谢谢!

0 个答案:

没有答案
相关问题