from Numeric import *
def peaks(data, step):
n = len(data) - len(data)%step # ignore tail
slices = [ data[i:n:step] for i in range(step) ]
peak_max = reduce(maximum, slices)
peak_min = reduce(minimum, slices)
return transpose(array([peak_max, peak_min]))
"""example of use:
>>> x = sin(arrayrange(0, 3.14, 1e-5))
>>> len(x)
314000
>>> peaks(x,10000)
array([[ 0.09982347, 0. ],
[ 0.19865953, 0.09983342],
...
[ 0.23924933, 0.14112991],
[ 0.14112001, 0.04159065]])
"""