[Numpy-discussion] numpy dot returns [nan nan nan]
Sat Aug 24 13:00:50 CDT 2013
Yes you are absolutely right. I had some values close to log(x), where x is
almost 0. That caused the problem.
On Sat, Aug 24, 2013 at 12:39 PM, Warren Weckesser <
> On 8/24/13, Warren Weckesser <email@example.com> wrote:
> > On 8/24/13, Tom Bennett <firstname.lastname@example.org> 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 : x = 1e160*np.random.randn(3, 10)
> > In : y = 1e160*np.random.randn(10)
> > In : np.dot(x, y)
> > Out: array([ nan, nan, nan])
> > ```
> ...and that happens because some intermediate terms overflow to inf or
> -inf, and adding these gives nan:
> In : x = np.array([1e300])
> In : y = np.array([1e10])
> In : np.dot(x,y)
> Out: inf
> In : x2 = np.array([1e300, 1e300])
> In : y2 = np.array([1e10,-1e10])
> In : np.dot(x2, y2)
> Out: nan
> > Warren
> NumPy-Discussion mailing list
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the NumPy-Discussion