python - 平均数据集同时保持其变量?

标签 python python-3.x numpy cartopy datasheet

我目前正在尝试将一些数据绘制到 cartopy 中,但遇到了一些问题。

我有一个数据表,其形状分别为 (180, 180, 360) 时间、纬度和经度。

我想获得该数据的年平均值。我一直在使用代码

def global_mean_3D(var, weights):
    # make sure masking is correct, otherwise we get nans
    var = np.ma.masked_invalid(var)
    # resulting variable should have dimensions of depth and time (x)
    ave = np.zeros([var.shape[0], var.shape[1]])
    # loop over time
    for t in np.arange(var.shape[0]):
    # loop over each depth slice
        for d in np.arange(var.shape[1]):
            ave[t,d] = np.ma.average(var[t,d,:], weights = weights)
    return ave

然后我用它来绘制

ax=plt.axes(projection=ccrs.Robinson())

ax.coastlines()

ax.contourf(x,y, ann_total_5tg)

但是随着时间的推移,这段代码给了我一个一维形状,我无法使用 pcolor 网格将其绘制到 cartopy 中。

我留下了错误

TypeError: Input z must be a 2D array.

是否有可能获得年度平均值,同时保留数据表中的变量?

最佳答案

我怀疑你必须reshape你的 numpy 数组将其与 contour method 一起使用。 使用您的变量名称可以这样完成:

ann_total_5tg = ann_total_5tg.reshape((180, 180))

关于python - 平均数据集同时保持其变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59475829/

相关文章:

python - 如何选择具有相同索引的行以在python pandas中形成一个新的DataFrame?

python - B(十亿)而不是 python 中的 G(千兆)plotly customdata [SI 前缀 d3]

python - 将 pandas df 中的行追加到新的 csv,同时保留标题一次?

python - 内存错误: Unable to allocate array shape ({very large}), windows Python解决方案

Python 3.1.1 字符串转十六进制

python-3.x - 每个轴标签的matplotlib颜色不同

python - CSRF Django,值错误

Python - 在每一行的不同位置切片数组

python - numpy.median.reduceat 的快速替代方案

python - 使用 Numpy 将 MATLAB 切片转换为 Python