Hello all, I am still scripting away and have reached my next quandry, this one is much simpler than the last, basically I read in a file with several columns. Vmatch3_1=dat[col1] Vmatch3_2=dat[col2] Vmatch3_3=dat[col3] Vdav=5.0 Vhel_fdiff3=max(abs(Vmatch3_1 - Vmatch3_2),abs(Vmatch3_1 - Vmatch3_3),abs(Vmatch3_3 - Vmatch3_2)) ---------------- What I would like this to return is the maximum difference in each case, so I end up with one column which contains only the largest differences. now I use this to write the condition:
with_v1_3=(Vhel_fdiff3 >= Vdav) I know the condition works and plots if Vhel_fdiff3=(Vmatch3_1 - Vmatch3_2) for example, and I know this syntax would work if it was numbers instead of columns. >>max(abs(1-2),abs(3-7),abs(2-4)) >>4 The error is: ----------------------- Traceback (most recent call last): File "double_plot.py", line 109, in <module> Vhel_fdiff3=max(abs(Vmatch3_1 - Vmatch3_2),abs(Vmatch3_1 - Vmatch3_3),abs(Vmatch3_3 - Vmatch3_2)) ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all() ----------------- So it can't handle the fact that it's columns of numbers and not single numbers, so my question is, can I solve this without doing a loop around it... use numpy, or some other function instead? I've been searching around and haven't found any good ways forward so I thought one of you might know. Thanks ~Elaina -- PhD Candidate Department of Physics and Astronomy Faculty of Science Macquarie University North Ryde, NSW 2109, Australia
_______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor