【发布时间】:2017-02-22 08:01:01
【问题描述】:
我有一个矩阵,其中包含全球某个部分的 NO2 测量值,以及 2 个包含纬度和经度的相同大小的矩阵。
NO2 = np.random.rand(100,100)
lat = np.random.rand(100,100)*90.
lon = np.random.rand(100,100)*180
我想将这些基于 lat 和 lon 的 NO2 值放入 0.125 度的 bin 中,如下所示:
latBins = np.linspace(-90,90,180/.125+1)
lonBins = np.linspace(-180,180,360/.125+1)
现在,我知道 numpy.digitize 和 numpy.histogram 可以返回每个 NO2 值所属的 bin 的索引,但我想要实际的 binned 矩阵。该矩阵如下所示:
binnedMatrix = np.zeros((1440,2880,15))
每个 bin 的深度为 15。如果我现在调用 binnedMatrix[0][0](它包含所有经度在 -180.,-179.875 和纬度之间的点 -90.,-89.875),我因此,希望所有在这些纬度和经度内分箱的 NO2 值。这样就可以将这个矩阵存储在某个地方,这正是我想要的。
有没有返回这个矩阵的函数?或者有什么方法可以在没有 for 循环的情况下完成?
【问题讨论】:
-
A代表什么? 1 bin 中的最大值?这会在第三维中留下一个参差不齐的数组,这可能不是一个 numpy 问题。
-
好的,我很了解我的数据,1 个 bin 中最多可以有 15 个 NO2 值,所以 A=15。少于这 15 个的 bin 将只有零。
标签: python pandas numpy matrix