[Numpy-discussion] numpy dot returns [nan nan nan]

Tom Bennett tom.bennett at mail.zyzhu.net
Sat Aug 24 14:00:50 EDT 2013


Hi Warren,

Yes you are absolutely right. I had some values close to log(x), where x is
almost 0. That caused the problem.

Thanks,
Tom


On Sat, Aug 24, 2013 at 12:39 PM, Warren Weckesser <
warren.weckesser at gmail.com> wrote:

> On 8/24/13, Warren Weckesser <warren.weckesser at gmail.com> wrote:
> > On 8/24/13, Tom Bennett <tom.bennett at mail.zyzhu.net> wrote:
> >> Hi All,
> >>
> >> I have two arrays, A and B.A is 3 x 100,000 and B is 100,000. If I do
> >> np.dot(A,B), I get [nan, nan, nan].
> >>
> >> However, np.any(np.isnan(A))==False and np.any(no.isnan(B))==False. And
> >> also np.seterr(all='print') does not print anything.
> >>
> >> I am not wondering what is going on and how to avoid.
> >>
> >> In case it is important, A and B are from the normal equation of doing
> >> regression. I am regressing 100,000 observations on 3 100,000 long
> >> factors.
> >>
> >> Thanks,
> >> Tom
> >>
> >
> > What are the data types of the arrays, and what are the typical sizes
> > of the values in these arrays?  I can get all nans from np.dot if the
> > values are huge floating point values:
> >
> > ```
> > In [79]: x = 1e160*np.random.randn(3, 10)
> >
> > In [80]: y = 1e160*np.random.randn(10)
> >
> > In [81]: np.dot(x, y)
> > Out[81]: array([ nan,  nan,  nan])
> > ```
>
> ...and that happens because some intermediate terms overflow to inf or
> -inf, and adding these gives nan:
>
> ```
> In [89]: x = np.array([1e300])
>
> In [90]: y = np.array([1e10])
>
> In [91]: np.dot(x,y)
> Out[91]: inf
>
> In [92]: x2 = np.array([1e300, 1e300])
>
> In [93]: y2 = np.array([1e10,-1e10])
>
> In [94]: np.dot(x2, y2)
> Out[94]: nan
> ```
>
> Warren
>
>
> >
> > Warren
> >
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion at scipy.org
> http://mail.scipy.org/mailman/listinfo/numpy-discussion
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20130824/1f4c8a58/attachment.html>


More information about the NumPy-Discussion mailing list