[docs]def get_interval(time,mins=1):
""" Figures out how many points in mins minutes
:param time: (ndarray) An array of times
:param mins: (int) Number of minutes to take HR over
:returns: The length in data points of mins minutes
"""
secs = mins*60
seglen = 0
for a in range(time.shape[0]):
if time[a]>secs:
seglen = a + 1
break
if seglen == 0:
raise ValueError('not enough data for that long average')
return seglen
[docs]def average(hr,time,mins=1):
""" Takes a running average of HR data
:param hr: (ndarray) An array of heart rates
:param mins: (int) Number of minutes to take HR over
:returns: An ndarray of average heart rate at each time point
"""
import numpy as np
seglen = get_interval(time,mins)
averages = []
for a, val in enumerate(hr):
if a<seglen:
averages.append('calculating')
else:
curAve = np.mean(hr[a-seglen:a])
averages.append(curAve)
return averages
if __name__ == "__main__":
average()