[Numpy-discussion] where() on mac/pc return different things
Robert Kern
robert.kern@gmail....
Wed Jan 23 17:40:12 CST 2008
James Battat wrote:
> Hi,
>
> numpy.where() returns different things on my windowsXP machine than on my
> collaborator's mac osx machine.
>
> For example, consider:
> >>> import numpy
> >>> a = numpy.array([1,2,3,4])
> >>> b = numpy.where( a > 2 )
>
> On WindowsXP (python 2.4.2, numpy 1.0.1), I get:
> >>> print b
> (array([2, 3]), )
> >>> print b[0]
> [2 3]
>
> While in OSX (python 2.4.3, numpy 0.9.6), he gets:
> >>> print b
> [2, 3]
> >>> print b[0]
> 2
>
> This matters because we use where() to get indices to loop over. On the
> mac you can then loop through the b array:
>
> for item in b:
> if b > 5:
> print 'hi'
>
> But this approach fails on a pc because:
> if b > 5:
> >>> ValueError: The truth value of an array with more than one element
> >>> is ambiguous. Use a.any() or a.all()
>
>
> I'd like to avoid having to do:
> if mac:
> b = numpy.where( a > 5)
> if pc:
> b = numpy.where( a > 5)[0]
>
> Has anybody else notice dealt with this? Is this a mac/pc difference or a
> numpy 1.01 vs. numpy 0.9.6 difference?
The latter. Before the 1.0 release, we tried to make it clear that we were still
experimenting with the APIs and that they might change up until 1.0 got released.
--
Robert Kern
"I have come to believe that the whole world is an enigma, a harmless enigma
that is made terrible by our own mad attempt to interpret it as though it had
an underlying truth."
-- Umberto Eco
More information about the Numpy-discussion
mailing list