如何以5分钟为间隔计算平均温度?

时间:2019-04-10 05:46:42

标签: python numpy matplotlib

我在练习中遇到问题,需要一些帮助来计算5分钟间隔内的平均温度。这是该问题的说明:

.txt文件中的第一列是以分钟为单位的时间。 .txt文件中的第二列是以华氏度为单位的温度。

  • 通过对阵列进行切片,每隔5分钟计算一次平均温度(也可以使用循环完成)。
  • 将.txt文件中的数据和平均值绘制在同一图上,其中x轴为时间,y轴为温度。
  • 将data1绘制为红色。
  • 将数据1的5分钟平均值绘制成蓝色(将其绘制在平均值中间,也就是将1分钟至5分钟的平均值绘制在3分钟处)。

我主要困惑于计算5分钟间隔内的平均温度,然后如何绘制间隔时间平均值的平均值。我还将在下面提供我的代码,但缺少该问题的这两部分。

import numpy as np
import matplotlib.pyplot as plt

data = np.loadtxt("sample1.txt")    
middle_of_interval = np.average()

plt.plot(data[:,0], data[:,1], "r") 
plt.title("Temperature vs. Time")  
plt.xlabel("Time (minutes)")        
plt.ylabel("Temperature (F)")       
plt.xticks(np.arange(0, 30, 1))     
plt.yticks(np.arange(23, 27, 0.5)) 

2 个答案:

答案 0 :(得分:0)

避免循环遍历数组总是一个好主意;最好坚持切片和其他技巧。

您可以像这样在数组arr的5个元素上获得移动平均值:

avg = (arr[:-4] + arr[1:-3] + arr[2:-2] + arr[3:-1] + arr[4:]) / 5

您还可以将小型棚车与时间序列进行卷积,如下所示:

boxcar = np.ones(5) / 5
avg = np.convolve(arr, boxcar, mode='valid')

对时间序列执行相同操作,以获取每次测量的平均时间。

答案 1 :(得分:0)

  1. 提示用户以华氏温度输入温度。
  2. 使用以下公式将温度转换为摄氏度。

    F = c×9/5 + 32

  3. 打印输出。