2013-04-02 32 views
1

我需要一些幫助我的Python程序。我已經導入了一個.txt文件,並在一個numpy數組中創建了一個字典。該文本文件是co2測量表,每年一個月。我需要計算公式中每年的平均二氧化碳值(def annual_mean_co2)。 「extract_complete_years」是一個排除不完整年份測量的公式。蟒蛇字典ManuaLoa二氧化碳

這是我的計劃至今:

data = np.loadtxt('MaunaLoa_CO2.txt', comments = '#') 


def extract_complete_years(r): 
    whole_year = data[10:-2, r] 
    return whole_year 



def read_MLdata(dittfilnavn): 
    dictionary = {'years': extract_complete_years(0),\ 
      'months': extract_complete_years(1),\ 
      'decyears': extract_complete_years(2),\ 
      'co2': extract_complete_years(3),\ 
      'co2_interp': extract_complete_years(4),\ 
      'co2_trend': extract_complete_years(5),\ 
      'num_no_data': extract_complete_years(6)} 
    return dictionary 


def annual_mean_co2(MLdata): 

我真的希望有人在那裏可以幫助:-)

+0

這並不多。你有什麼特別的問題?你不能指望人們爲你完成整個工作。 –

回答

0

最簡單的方法是做這樣的事情:

def annual_mean_co2(MLdata): 
    years = MLdata['years'] 
    co2 = MLdata['co2'] 
    y, _ = np.unique(years, return_inverse=True) 
    co2_mean = np.empty(y.shape) 
    for j in xrange(len(y)): 
     co2_mean[j] = np.mean(co2[_ == j]) 
    return y, c02_mean 

如果因爲你只有完整的年份,你肯定每年都會有相同數量的條目,你可以將for循環矢量化爲:

def annual_mean_co2(MLdata): 
    years = MLdata['years'] 
    co2 = MLdata['co2'] 
    y, _ = np.unique(years, return_inverse=True) 
    idx = np.argsort(_) 
    co2_mean = co2[idx].reshape(len(y), -1) 
    return y, np.mean(co2_mean, axis=1)