使用python for循环平均数据
我有一个数据集,它包含20年的月平均值,以一个整数数组表示,每个维度(1x240)。我正试图写一个函数来计算年平均值。我已经设法做到了(我相信),使用了for循环,但是当我将完全相同的代码粘贴到函数中时,它只会给出20个值中的第一个值使用python for循环平均数据,python,arrays,numpy,for-loop,Python,Arrays,Numpy,For Loop,我有一个数据集,它包含20年的月平均值,以一个整数数组表示,每个维度(1x240)。我正试图写一个函数来计算年平均值。我已经设法做到了(我相信),使用了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
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
gm_数据是文件的名称
当我只是手动输入
data= np.load(gm_data)
for i in range (0,20):
average= data[i*12:i*12+12].sum()/12
print average
return average
它成功地读取了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
但这给了我一个长长的、古怪的清单。这方面的帮助也很酷。谢谢 这是你需要的
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 #don't return until the loop has completed
这是你需要的
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 #don't return until the loop has completed
为什么不完全避免“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)
为什么不完全避免“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)
我肯定这是一个复制品,但我找不到。在
for
循环体中有return
,因此它只完成一次迭代。然后函数结束了,剩下的循环就完蛋了。示例中的缩进有问题。另外,第二个代码块包含一个返回值,但它不在函数中。@Two Bitalchest我肯定有很多,但它们从来没有一个易于跟踪的标题:)尽管缩进无效,因此,我不确定我们是否能确认这是原因。通过pandas的聚合数据集可能会提供您想要的结果(并且不需要迭代逻辑)。如果你愿意的话,我可以提供更多的细节——让我知道。@Sevyns他在正确的轨道上,他想要计算的东西。。。他只需要取消他的退货声明。我肯定这是一份副本,但我找不到。在for
循环体中有return
,因此它只完成一次迭代。然后函数结束了,剩下的循环就完蛋了。示例中的缩进有问题。另外,第二个代码块包含一个返回值,但它不在函数中。@Two Bitalchest我肯定有很多,但它们从来没有一个易于跟踪的标题:)尽管缩进无效,因此,我不确定我们是否能确认这是原因。通过pandas的聚合数据集可能会提供您想要的结果(并且不需要迭代逻辑)。如果你愿意的话,我可以提供更多的细节——让我知道。@Sevyns他在正确的轨道上,他想要计算的东西。。。他只需要取消回复声明