[pyar] No consigo manejar excepción en matriz de numpy

Adrian Roldan roldanadrian en gmail.com
Vie Mayo 18 13:21:44 ART 2012


Hola gente, tengo al menos, un problema. No me doy cuenta como manejar una
excepción del tipo división por cero.

Les muestro una parte del código:

matriz = np.hstack((matrizdatos1, matrizdatos2))
for linea in matriz:
    try:
        kt = linea[17] / linea[6]
    except ZeroDivisionError:
        kt = -8000

    print  kt

armo una matriz de numpy con datos que tengo en dos archivos, la recorro y
hago la división. Cuando encuentra un cero en linea[6]
me devuelve inf en lugar de asignar -8000. ¿Será que así no se manejan las
excepciones en numpy, que estoy haciendo algo mal, o que ya estoy loco?

No quiero hacer lo siguiente, que sí funciona:

 for linea in matriz:

if linea[6] == 0:

kt = -8000



Aparte de no hacer lo que yo quisiera que haga me da la siguiente
advertencia:

ktprovisorio.py:15: RuntimeWarning: divide by zero encountered in
double_scalars
  kt = linea[17] / linea[6]
ktprovisorio.py:15: RuntimeWarning: invalid value encountered in
double_scalars
  kt = linea[17] / linea[6]


La búsqueda en la red del error no me aclaró nada.

Me imprimí los tipos y son

linea6 <type 'numpy.float64'> linea17 <type 'numpy.float64'>

No estoy seguro de hacia que lado disparar, cualquier ayuda es bienvenida.

Saludos
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20120518/c32b501b/attachment.html>


More information about the pyar mailing list