使用python for循环平均数据

Ben*_*enL 0 python arrays for-loop numpy

我有一个数据集,其中包含以尺寸(1x240)为单位的numpy数组的20年月平均值。我正在尝试编写一个函数来计算年度平均值。我已经设法使用for循环来做到这一点,但是当我将完全相同的代码粘贴到函数中时,它只给了我应该是20个值的第一个。

def yearlymean_gm(gm_data):
    data= np.load(gm_data)
        for i in range (0,20):
        average= data[i*12:i*12+12].sum()/12
        print average
        return average
Run Code Online (Sandbox Code Playgroud)

gm_data是文件的名称。

当我只是手动输入

data= np.load(gm_data)
for i in range (0,20):
    average= data[i*12:i*12+12].sum()/12
    print average
    return average
Run Code Online (Sandbox Code Playgroud)

它成功读取了20个值。我很确定我只是不太了解for循环在函数上下文中的工作方式。任何解释(如果可能的话,还有一个解决方法)都很棒。

其次,我希望将这些值输入到numpy数组中。我试过了

def yearlymean_gm(gm_data):
    data= np.load(gm_data)
    average = np.zeroes(20)  
    for i in range (0,20):
        average[i]= data[i*12:i*12+12].sum()/12
        print average
        return average
Run Code Online (Sandbox Code Playgroud)

但这给了我长长而古怪的清单。帮助也很酷。谢谢!

小智 5

为什么不完全避免“ for”循环?

def yearlymean_gm(gm_data):
    data = np.load(gm_data)
    data = data.reshape((12, 20))
    print data.mean(axis=1)
    return data.mean(axis=1)
Run Code Online (Sandbox Code Playgroud)