Puedes aplicar np.char.lstrip  directamente a la fila/s   y/o   columa/s   
donde tienes el problema

http://docs.scipy.org/doc/numpy-1.7.0/reference/generated/numpy.core.defchararray.lstrip.html#numpy.core.defchararray.lstrip

y después cambiar el tipo del array

Un ejemplo:

>>> a = np.array(['00-20', '00-3','000'])
>>> a
array(['00-20', '00-3', '000'], 
      dtype='<U5')
>>> a[:2] = np.char.lstrip(a[:2], '0')
>>> a
array(['-20', '-3', '000'], 
      dtype='<U5')

Si lo aplicas a todo el array ,además, pasas de tener "000" a "" y no creo que 
sea lo que quieres.

Un saludo


PD: Di con ello porque me parecia extraño que no hubiese nada de eso en numpy y 
hubo suerte así era.




From: yamila...@gmail.com
Date: Tue, 29 Dec 2015 20:05:17 +0100
To: python-es@python.org
Subject: Re: [Python-es] numpy.absolute

Rolando, un par de cositas:

Si y tiene el valor que nos pasas, entonces tu código tiene que ser algo como:

y = float(str(y[0]).lstrip("0"))
¡ojo! en lstrip la "l" significa "left", así que solo te quita los ceros de la 
izquierda. ¿así te sirve?

Por otro lado, te doy un par de pistas para que tú mismo hagas debugging del 
programa:

1) usa print, sí tal cual. Añade en tu programa líneas con:

print(" VALOR DE Y ANTES DE TAL O CUAL TRANSFORMACION ", y)

2) usa pdb. Si en cualquier línea de tu programa pones "import pdb; 
pdb.set_trace()", al lanzar la ejecución se parará en ese punto, y te dará un 
intérprete de python con las variables de tu programa, de forma que puedes 
investigar qué valor tiene en un punto concreto.

El problema que estás teniendo tiene mucho de "afinar" el resultado como te 
guste, o como lo necesites según el caso, y para eso, es muy recomendable que 
estés constantemente evaluando qué valores tienen las variables y probando las 
transformaciones que necesites.

¡¡mucho ánimo!!
yami



2015-12-29 19:47 GMT+01:00 Rolando Paz <flx...@gmail.com>:
Gracias por todos los consejos.
Hice esto:
cols = np.loadtxt(args.bram, dtype=str, usecols=[2,8])
x = cols[:,0]y = cols[:,1]
max_x = np.argmax(y)
y = float(str(y).lstrip("0"))
plt.plot(x,y)
plt.show()
El nuevo error es este:
$ python plot_bram.py -b bram_ac_real_test -f 50Traceback (most recent call 
last):  File "plot_bram.py", line 27, in <module>    y = 
float(str(y).lstrip("0"))ValueError: could not convert string to float: 
['0000000000' '0000000000' '0000000000' '00-4834129' '0000000000' '0000000000' 
'0000000000' '0000000000']
Entiendo que este es el contenido del arreglo "y":
['0000000000' '0000000000' '0000000000' '00-4834129' '0000000000' '0000000000' 
'0000000000' '0000000000']
Esta representación esta correcta?




El 29 de diciembre de 2015, 12:37, Yamila Moreno Suárez <yamila...@gmail.com> 
escribió:
Rolando, el error te indica que tienes un tipo "ndarray" y que los ndarray no 
tienen "lstrip". 

lstrip es un método de strings (cadenas de texto), como la que ves en el 
ejemplo que te dio Juanlu.

Siguiendo con los consejos que te han dado en correos anteriores, lo que 
tendrías que hacer es (1)pasar el valor de tu ndarray (que si no me equivoco es 
00-48....) a string, (2)aplicarle la modificación y (3)después volver a pasarlo 
al tipo que necesites. 

en varios pasos:
y = str(y)
y = y.lstrip("0")
y = float(y)

en un solo paso:
y = float(str(y).lstrip("0"))

suerte :)



2015-12-29 19:20 GMT+01:00 Rolando Paz <flx...@gmail.com>:
Mira lo que surge:
$ python plot_bram.py -b bram_ac_real -f 50Traceback (most recent call last):  
File "plot_bram.py", line 27, in <module>    y = y.lstrip("0")AttributeError: 
'numpy.ndarray' object has no attribute 'lstrip'
Codigo:
cols = np.loadtxt(args.bram, dtype=str, usecols=[2,8])
x = cols[:,0]y = cols[:,1]
max_x = np.argmax(y)
y = y.lstrip("0")
plt.plot(x,y)
plt.show()




El 29 de diciembre de 2015, 12:10, Juan Luis Cano <juanlu...@gmail.com> 
escribió:

  
    
  
  
    On 2015-12-29 18:20, Rolando Paz wrote:

    
    Lo que entiendo que
        necesito es encontrar una función que elimine todos los ceros a
        la izquierda del signo menos.
    

    Tal vez puedes probar con

    

    >>> "00-4834129".lstrip("0")

    '-4834129'

    

    https://docs.python.org/3/library/stdtypes.html#str.lstrip

    

    Juan Luis

  


_______________________________________________

Python-es mailing list

Python-es@python.org

https://mail.python.org/mailman/listinfo/python-es

FAQ: http://python-es-faq.wikidot.com/





_______________________________________________

Python-es mailing list

Python-es@python.org

https://mail.python.org/mailman/listinfo/python-es

FAQ: http://python-es-faq.wikidot.com/




-- 
Yamila  Moreno Suárez
http://dendarii.eshttp://moduslaborandi.net


_______________________________________________

Python-es mailing list

Python-es@python.org

https://mail.python.org/mailman/listinfo/python-es

FAQ: http://python-es-faq.wikidot.com/





_______________________________________________

Python-es mailing list

Python-es@python.org

https://mail.python.org/mailman/listinfo/python-es

FAQ: http://python-es-faq.wikidot.com/




-- 
Yamila  Moreno Suárez
http://dendarii.eshttp://moduslaborandi.net


_______________________________________________
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/                                    
_______________________________________________
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/

Responder a