[Tutor] finding a maximum between the absolute difference of several columns

Mark Lawrence breamoreboy at yahoo.co.uk
Fri Feb 17 03:11:06 CET 2012


On 17/02/2012 01:04, Elaina Ann Hyde wrote:
> 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
>
>
>
>
> _______________________________________________
> Tutor maillist  -  Tutor at python.org
> To unsubscribe or change subscription options:
> http://mail.python.org/mailman/listinfo/tutor

Throwing the error message into google gave a pile of hits from 
stackoverflow.com, which indicate that the error message is from numpy. 
  See if this can get you going 
http://stackoverflow.com/questions/1322380/gotchas-where-numpy-differs-from-straight-python. 
  The fourth answer down states "this is a horrible problem" so I'll 
duck out here, sorry :)

-- 
Cheers.

Mark Lawrence.



More information about the Tutor mailing list