On 5/1/07, John Washakie <[EMAIL PROTECTED]> wrote:
It aint pretty! And if I had just walked away, it probably would've
taken half the time in the morning, but here's what I've come up with
(any suggestions for improvements, or course are welcome):
for d in data:
w = len(d)
if d[0] <= tinit+60:
d = column_stack(d)
cnt,sum = cnt+1,sum+d
else:
avg = sum/(ones(w)*cnt)
tinit,cnt,sum = d[0],0,zeros(n)
if init==0:
newData,init = avg,1
else:
newData = append(newData,avg,axis=0)
return newData
Sorry my last reply was so terse - I needed to catch a train. :)
So you need to check out a couple of functions - namely sum.
numbers=[1,2,3,4,5]
numbers.append(6)
numbers
[1, 2, 3, 4, 5, 6]
sum(numbers)
21
len(numbers)
6
sum(numbers)/len(numbers)
3
WAIT WAIT hold the phone!? 21/5 is NOT 3! It's 3.5! The short story here
is that you have to make on of the numbers a floating point to get the
result to return a float, so do this:
sum(numbers)*1.0/len(numbers)
3.5
So there is our average. If floor division doesn't make sense to you, you
aren't alone. This changes in Python 3000. You can read about floor
division here:
http://www.python.org/doc/2.2.3/whatsnew/node7.html
I don't quite know what your stack is for - it can probably be accomplished
using some slices or other fun stuff.
Good luck, and welcome to python!
_______________________________________________
Tutor maillist - [email protected]
http://mail.python.org/mailman/listinfo/tutor