Усреднять набор данных, сохраняя его переменные?

В настоящее время я пытаюсь построить некоторые данные в картопии, но у меня есть некоторые проблемы.

У меня есть таблица данных, которая имеет форму (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.

у меня осталась ошибка

TypeError: Вход z должен быть двумерным массивом.

Можно ли получить среднегодовое значение при сохранении переменных в таблице данных?


person A_Luna1999    schedule 25.12.2019    source источник


Ответы (1)


Я подозреваю, что вам нужно изменить массив numpy чтобы использовать его с методом contour. Используя ваше имя переменной, это можно сделать так:

ann_total_5tg = ann_total_5tg.reshape((180, 180))
person mgc    schedule 25.12.2019