Hola Yamila Muchas gracias por tu correo.
Lo que necesito es corregir cualquier valor negativo que tenga ceros a la izquierda. Algunos ejemplos: 00000000-1 000000-355 0000-54623 0000000-56 0-98756874 El valor negativo depende de la potencia en dBm de la senial analógica que le ingrese a la tarjeta que estoy usando. Al colocar el print para observar el contenido de "y", observo esto: ['0000000000' '0000000000' '0000000000' '00-4834129' '0000000000' '0000000000' '0000000000' '0000000000'] Veo cadenas separadas por un espacio en blanco. cols = np.loadtxt(args.bram, dtype=str, usecols=[2,8]) x = cols[:,0] y = cols[:,1] print 'este es el contenido de y =',y y = float(str(y[0]).lstrip("0")) El error que surge es este: Traceback (most recent call last): File "plot_bram.py", line 28, in <module> y = float(str(y[0]).lstrip("0")) ValueError: could not convert string to float: Seguire intentando... :-) El 29 de diciembre de 2015, 13:05, Yamila Moreno Suárez <yamila...@gmail.com > escribió: > 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 50 >> Traceback (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 50 >>>> Traceback (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.es >>> http://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.es > http://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/