[Numpy-discussion] The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
Wed Oct 27 17:31:17 CDT 2010
Thanks for the quick help. I tried to write a little self-contained example
of the crash, but it wasn't working. (I'm sure you've already figured out
how this ends.) When I tracked down why it wasn't working, I found my bug.
Turned out that cut, which I assumed was just a small scalar value, was
actually a matrix, since I was passing in the wrong number of arguments to
the function. Hence the confusing error.
Thanks again, and sorry for wasting your time.
On Wed, Oct 27, 2010 at 3:04 PM, Zachary Pincus <email@example.com>wrote:
> > 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?
> NumPy-Discussion mailing list
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the NumPy-Discussion