[Python-es] Cambio de enteros a flotantes

Ricardo Cárdenes ricardo.cardenes en gmail.com
Mar Mar 14 19:58:14 EDT 2017


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
>
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20170314/87802bbf/attachment.html>


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