2012-03-06 68 views
0

多维数组我有保留作为阵列的温度数据:平均在Python

temp[month][day][hour][min] 

有一种简单的方法来获得数据的每小时平均水平,这是所有的平均值值在同一小时?同样,日平均?

+0

只需使用一个循环(如果您想一次获得每个小时或一天的平均值,则使用循环(嵌套循环))并仅更改所需项目的索引(本例中为小时或天)。继续添加电流,然后除以长度。 – evanmcdonnal 2012-03-06 22:08:48

回答

1

您应该能够使用这些函数来获得所需的场均数据:

def hourly_average(values, month, day, hour): 
    hour_data = values[month][day][hour] 
    # extract the values for every minute in the specified hour. 
    minute_values = [hour_data[min] for min in xrange(0,60)] 
    return sum(minute_values)/60 

def daily_average(values, month, day): 
    # extract the averages for every hour in the specified day. 
    hour_values = [hourly_average(vales,month,day,hour) for hour in xrange(0,24)] 
    # the average of the averages of the equally weighted parts is the average 
    # of the thing itself (?). 
    return sum(hour_values)/24 
1

你有兴趣使用numpy

像这样成为简单:

import numpy 

data_as_numpy_array = numpy.array(original_data) 

hourly_averages = numpy.average(data_as_numpy_array, 3) 

daily_averages = numpy.average(hourly_averages, 2) 

在第二两行,第二个参数是沿您希望平均轴线。这里3是分钟数据的轴,两个是小时数据的轴。

您可能还有兴趣安装pylab和ipython。 Pylab模拟Matlab的图形/可视化功能,而ipython是一个增强型解释器,其中包括Tab完成和完整命令输入(和输出)历史记录等。