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/

Responder a