0

现在我有一个 24*20 数组,如下所示:

In [748]: zb_mean
Out[748]: 
array([[          nan,   20.68575654,   14.11937546,           nan,
              nan,           nan,           nan,           nan,
              nan,           nan,           nan,           nan,
              nan,           nan,           nan,           nan,
              nan,           nan,           nan,           nan],
   [          nan,           nan,           nan,           nan,
              nan,           nan,           nan,           nan,
              nan,           nan,           nan,           nan,
... ... ...
... ... ...

In [749]: zb_mean.shape
Out[749]: (24, 20)

然后我根据纬度/经度创建一个网格,如下所示:

xi = np.arange(-66,-72,-0.25)
yi = np.arange(40.5,45.5,0.25)

In [755]: len(xi),len(yi)
Out[755]: (24, 20)

xxb,yyb = np.meshgrid(xi, yi)

现在网格和数组有相同的维度,我想在每个小网格的中心用数组(zb_mean)的对应值绘制这个网格(xxb,yyb),我该怎么办?非常感谢!

4

1 回答 1

2

如果我理解你的问题是正确的,你想绘制你有有效值的单元格。诀窍是使用方法 masked_invalid ,该方法将使用 numpy 函数masked_invalid隐藏您的 nan 值。我创建了一个关于如何执行此操作的小示例:

import numpy as np
test=np.asarray([[10,15,20,50],[30,40,nan,70],[nan,10,nan,25],[100,50,nan,60]])
test=np.ma.masked_invalid(test)

xi = np.arange(-66,-70,-1)
yi = np.arange(40.5,44.5,1)
xxb,yyb = np.meshgrid(xi, yi)

c=pcolor(xxb,yyb,test)
colorbar(c)

希望这可以帮助。干杯,特隆德

于 2013-08-12T19:59:00.467 回答