On Thu, May 14, 2009 at 7:26 PM, darkside <in.the.darks...@gmail.com> wrote:
> Hi list,
> I have to make a division that sometimes yields and inf, and I want to
> replace it by 0.
> I have try this:
> ---------------------------------------
> import pylab as p
> p.seterr(divide='raise')
> l = array vector defined along the program
>     try:
>             a = (dr*R*dl)/(1.-((R0/R)*p.sin(l))**2)**(1./2)

Does your code fail with a ZeroDivisionError or simply fill the array
with infs.  You could try replacing the infs with zeros with

  mask = np.isinf(x)
  x[mask] = 0.


Eg,

In [1]: import numpy as np

In [2]: x = np.arange(0., 1., 0.1)

In [3]: y = 1/x

In [4]: y
Out[4]:
array([         Inf,  10.        ,   5.        ,   3.33333333,
         2.5       ,   2.        ,   1.66666667,   1.42857143,
         1.25      ,   1.11111111])

In [5]: mask = np.isinf(y)

In [6]: y[mask] = 0.

In [7]: y
Out[7]:
array([  0.        ,  10.        ,   5.        ,   3.33333333,
         2.5       ,   2.        ,   1.66666667,   1.42857143,
         1.25      ,   1.11111111])


JDH


>     except FloatingPointError:
>             a=0
> ---------------------------------
> It works, but it doesn't return an array as expect, if some of the values
> are zero, then a = 0.
> So I tried:
> --------------------------
> a = p.zeros(len(l))
>     for i in range(len(l)):
>         try:
>             a[i] = (dr*R*dl)/(1.-((R0/R)*p.sin(l[i]))**2)**(1./2)
>         except FloatingPointError:
>             a[i]=0
> --------------------------------
> But doing it this way I'm not able to get an exception:
> array([ Inf])
> And I don't know what I have to change to get an exception doing things this
> way.
>
> Thank you,
> Illa
>
>
> ------------------------------------------------------------------------------
> Crystal Reports - New Free Runtime and 30 Day Trial
> Check out the new simplified licensing option that enables
> unlimited royalty-free distribution of the report engine
> for externally facing server and web deployment.
> http://p.sf.net/sfu/businessobjects
> _______________________________________________
> Matplotlib-users mailing list
> Matplotlib-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>
>

------------------------------------------------------------------------------
Crystal Reports - New Free Runtime and 30 Day Trial
Check out the new simplified licensing option that enables 
unlimited royalty-free distribution of the report engine 
for externally facing server and web deployment. 
http://p.sf.net/sfu/businessobjects
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to