[Python-es] Cambio de enteros a flotantes

Rolando Paz flxpaz en gmail.com
Mar Mar 14 20:18:08 EDT 2017


Hola Ricardo

Gracias por tu observación, resulta que los avances que he hecho con python
los he logrado por pura deducción lógica. No tuve formación teórica al
respecto; mi área profesional es otra. Perdona David por no entender.

Entonces para que los valores internos de un archivo sean enteros de 32
bits, el tamaño del archivo debe ser múltiplo de 4?

Estoy seguro que mi diseño digital produce datos enteros con signo de 32
bits de precisión, y que dentro de estos datos se encuentran potencias en
función de la frecuencia en un tiempo dado , por lo que deduzco que cuando
yo obtengo los datos con GULP, ese mismo tipo de datos grabo en mis
archivos.

Saludos y gracias.

Rolando




El 14 de marzo de 2017, 17:58, Ricardo Cárdenes <ricardo.cardenes en gmail.com>
escribió:

> Rolando, concéntrate.
>
> David te está preguntando si conoces el formato del fichero, porque el que
> has pasado no coincide con la premisa "colección de enteros de 32 bits",
> porque el tamaño del fichero no es múltiplo de 4.
>
> Evidentemente, lo último que has mandado es un array de enteros de 32 bits
> y su correspondiente en coma flotante de 32 bits (con la consiguiente
> pérdida de precisión), pero no sabemos si los datos son *correctos*, por lo
> que acabo de mencionar arriba.
>
> Saludos,
> Ricardo
>
> 2017-03-14 12:16 GMT-10:00 Rolando Paz <flxpaz en gmail.com>:
>
>> Ejecuté este código solo para ver los valores
>>
>> import numpy as np
>>
>> array_int32 = np.fromfile('pocobe4_r19_v18_r20.dat', dtype=np.int32)
>> print 'Data int32 signed:'
>> print array_int32
>> array_float32 = np.fromfile('pocobe4_r19_v18_r20.dat',
>> dtype=np.int32).astype(np.float32)
>> print 'Data float32:'
>> print array_float32
>>
>> Y el resultado es:
>>
>> Data int32 signed:
>> [-1582119980      262146           0 ...,           0           0
>>            0]
>> Data float32:
>> [ -1.58211994e+09   2.62146000e+05   0.00000000e+00 ...,   0.00000000e+00
>>    0.00000000e+00   0.00000000e+00]
>>
>> Creo que sí los convierte a flotantes???
>>
>> Saludos
>>
>> El 14 de marzo de 2017, 15:48, Rolando Paz <flxpaz en gmail.com> escribió:
>>
>>> Hola David
>>>
>>> Recién estoy aprendiendo sobre el tema. Me puedes explicar a que te
>>> refieres con que la distribución de números es uniforme y porqué no debería
>>> ser así?
>>>
>>> Saludos y gracias.
>>>
>>> Rolando
>>>
>>> El 14 de marzo de 2017, 12:45, Daπid <davidmenhur en gmail.com> escribió:
>>>
>>>> Creo que sigue habiendo algo mal. La distribución de números es
>>>> uniforme en todo el rango de int32.
>>>>
>>>> 2017-03-14 18:11 GMT+01:00 Rolando Paz <flxpaz en gmail.com>:
>>>> > Hola amigos
>>>> >
>>>> > Con la ayuda de un amigo Sven Marnach hice esto:
>>>> >
>>>> > import numpy as np
>>>> >
>>>> > array = np.fromfile('pocobe4_r19_v18_r20.dat',
>>>> > dtype=np.int32).astype(np.float32)
>>>> > with open("prueba_out", "wb") as prueba_out:
>>>> >     prueba_out.write(array.tostring())
>>>> >
>>>> > Ahora obtengo un archivo binario.
>>>> >
>>>> > Que opinan?
>>>> >
>>>> > El 14 de marzo de 2017, 9:12, Kiko <kikocorreoso en gmail.com> escribió:
>>>> >>
>>>> >>
>>>> >>
>>>> >> El 14 de marzo de 2017, 16:00, Daπid <davidmenhur en gmail.com>
>>>> escribió:
>>>> >>>
>>>> >>> Lo he probado con el adjunto, y parece que lo que tienes no son
>>>> >>> objetos de 32 bits, porque el tamaño no es múltiplo. Así que o
>>>> tienes
>>>> >>> otro tipo de datos (si fueran 16 bits tendrías casi 11 millones de
>>>> >>> números), o hay una cabecera. No creo que sean 8 o 16 bits porque la
>>>> >>> distribución de valores es completamente uniforme, a menos que sean
>>>> >>> datos aleatorios.
>>>> >>>
>>>> >>> genfromtxt y amigos te sirven para leer ficheros de texto, no
>>>> binarios.
>>>> >>
>>>> >>
>>>> >> Mi culpa. He leído los correos en diagonal...
>>>> >>
>>>> >>>
>>>> >>>
>>>> >>> 2017-03-14 15:34 GMT+01:00 Rolando Paz <flxpaz en gmail.com>:
>>>> >>> > Gracias Kiko, lo intentare.
>>>> >>> >
>>>> >>> > David al ejecutar el pequeño script sobre mi archivo binario,
>>>> obtengo
>>>> >>> > un
>>>> >>> > archivo binario (supongo de flotantes) pero solo tiene cuatro
>>>> >>> > valores...
>>>> >>> >
>>>> >>> > Adjunto el contenido de cada archivo usando ghex.
>>>> >>> >
>>>> >>> > Que opinas?
>>>> >>> >
>>>> >>> > Saludos
>>>> >>> >
>>>> >>> >
>>>> >>> > 2017-03-14 8:19 GMT-06:00 Daπid <davidmenhur en gmail.com>:
>>>> >>> >>
>>>> >>> >> 2017-03-14 14:41 GMT+01:00 Rolando Paz <flxpaz en gmail.com>:
>>>> >>> >> > array = np.fromstring("data", dtype=np.int32).astype(np.floa
>>>> t32)
>>>> >>> >>
>>>> >>> >> Te sobran las comillas en "data".
>>>> >>> >> _______________________________________________
>>>> >>> >> Python-es mailing list
>>>> >>> >> Python-es en python.org
>>>> >>> >> https://mail.python.org/mailman/listinfo/python-es
>>>> >>> >
>>>> >>> >
>>>> >>> >
>>>> >>> > _______________________________________________
>>>> >>> > Python-es mailing list
>>>> >>> > Python-es en python.org
>>>> >>> > https://mail.python.org/mailman/listinfo/python-es
>>>> >>> >
>>>> >>> _______________________________________________
>>>> >>> Python-es mailing list
>>>> >>> Python-es en python.org
>>>> >>> https://mail.python.org/mailman/listinfo/python-es
>>>> >>
>>>> >>
>>>> >>
>>>> >> _______________________________________________
>>>> >> Python-es mailing list
>>>> >> Python-es en python.org
>>>> >> https://mail.python.org/mailman/listinfo/python-es
>>>> >>
>>>> >
>>>> >
>>>> > _______________________________________________
>>>> > Python-es mailing list
>>>> > Python-es en python.org
>>>> > https://mail.python.org/mailman/listinfo/python-es
>>>> >
>>>> _______________________________________________
>>>> Python-es mailing list
>>>> Python-es en python.org
>>>> https://mail.python.org/mailman/listinfo/python-es
>>>>
>>>
>>>
>>
>> _______________________________________________
>> Python-es mailing list
>> Python-es en python.org
>> https://mail.python.org/mailman/listinfo/python-es
>>
>>
>
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> https://mail.python.org/mailman/listinfo/python-es
>
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20170314/3f819f7a/attachment.html>


Más información sobre la lista de distribución Python-es