Rolando,
Puedes probar con lo siguiente: y = np.array([float(y[k].split("-")[-1]) for k in range(len(y))]) Y lo mismo con el array "x"... En este caso, no necesitarás utilizar np.absolute porque el método split "elimina" el signo negativo. Saludos. El 29 de diciembre de 2015, 16:24, Rolando Paz <flx...@gmail.com> escribió: > 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/ > >
_______________________________________________ Python-es mailing list Python-es@python.org https://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/