Python中多维数组的平均值

时间:2012-03-06 21:51:50

标签: python arrays

我有一个温度数据,我保留为数组:

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

是否有一种简单的方法可以获得数据的每小时平均值,即同一小时内所有值的平均值?同样,每日平均值?

2 个答案:

答案 0 :(得分: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 :(得分: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是一个增强的解释器,具有制表完成和完整命令输入(和输出)历史记录等。