[Numpy-discussion] bug in numpy.where?
Benjamin Root
ben.root at ou.edu
Fri Jul 27 14:01:40 EDT 2012
On Thu, Jul 26, 2012 at 2:33 PM, Phil Hodge <hodge at stsci.edu> wrote:
> On a Linux machine:
>
> > uname -srvop
> Linux 2.6.18-308.8.2.el5 #1 SMP Tue May 29 11:54:17 EDT 2012 x86_64
> GNU/Linux
>
> this example shows an apparent problem with the where function:
>
> Python 2.7.1 (r271:86832, Dec 21 2010, 11:19:43)
> [GCC 4.1.2 20080704 (Red Hat 4.1.2-48)] on linux2
> Type "help", "copyright", "credits" or "license" for more information.
> >>> import numpy as np
> >>> print np.__version__
> 1.5.1
> >>> net = np.zeros(3, dtype='>f4')
> >>> net[1] = 0.00458849
> >>> net[2] = 0.605202
> >>> max_net = net.max()
> >>> test = np.where(net <= 0., max_net, net)
> >>> print test
> [ -2.23910537e-35 4.58848989e-03 6.05202019e-01]
>
> When I specified the dtype for net as '>f8', test[0] was
> 3.46244974e+68. It worked as expected (i.e. test[0] should be 0.605202)
> when I specified float(max_net) as the second argument to np.where.
>
> Phil
>
Confirmed with version 1.7.0.dev-470c857 on a CentOS6 64-bit machine.
Strange indeed.
Breaking it down further:
>>> res = (net <= 0.)
>>> print res
[ True False False]
>>> np.where(res, max_net, net)
array([ -2.23910537e-35, 4.58848989e-03, 6.05202019e-01], dtype=float32)
Very Strange...
Ben Root
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20120727/cabd144a/attachment.html>
More information about the NumPy-Discussion
mailing list