[Numpy-discussion] The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
Zachary Pincus
zachary.pincus@yale....
Wed Oct 27 16:04:59 CDT 2010
> Help! I'm having a problem in searching through the *elements* if a
> 2d array. I have a loop over a numpy array:
>
> n,m = G.shape
> print n,m
> for i in xrange(n):
> for j in xrange(m):
> print type(G), type(G[i,j]), type(float(G[i,j]))
> g = float(abs(G[i,j]))
> if g < cut:
> print i,j,G[i,j]
>
> However, I'm getting the error message:
>
> The truth value of an array with more than one element is
> ambiguous. Use a.any() or a.all()
>
> despite the fact that I'm not computing a truth value of an array.
> I'd like to just compare to G[i,j] or abs(G[i,j]), which should be a
> *single* value, and *not* an array. I even call 'float' here to make
> sure that I cast this to a normal python float. But I still get this
> error message.
Which line is raising the error?
My guess is it's the only truth-value testing line: "if g < cut". (I'm
not sure what else could error here in that way...) It looks like g is
probably a scalar, but your code isn't showing where cut comes from,
nor have you printed out it's type... is it an array?
Zach
More information about the NumPy-Discussion
mailing list