[Python-es] big-endian a little-endian

Rolando Paz flxpaz en gmail.com
Mar Mayo 9 13:50:49 EDT 2017


Gracias por las respuestas

Que les parece esto:

array_float32 = np.fromfile('pulsar_test_01_19273_1024ch.bin',
dtype=np.uint32).astype(np.float32)
little_endian = array_float32.byteswap(True).newbyteorder('L')


with open("pulsar_test_01_19273_1024ch_little", "wb") as output_array:
    output_array.write(little_endian.tostring())

Cómo puedo confirmar que mi archivo de entrada y mi archivo de salida sean
big-endian y little-endian respectivamente?

Saludos

El 9 de mayo de 2017, 9:01, Marc Garcia <garcia.marc en gmail.com> escribió:

> Lo que deberías hacer es llamar a array_float32.byteswap().newbyteorder()
> antes de guardar el array.
>
> byteswap() cambia los bytes "físicamente", son en la memoria pasarás de
> tener 0001 a 1000, y newbyteorder() le dice a numpy como es el endianness
> de los datos. En newbyteorder() te lo deberías poder ahorrar si no vas a
> hacer nada más con el array, pero debería ser inmediato, solo cambia una
> flag, con lo cual creo que mejor hacerlo.
>
> On Tue, May 9, 2017 at 3:25 PM, Rolando Paz <flxpaz en gmail.com> wrote:
>
>> Hola a todos...
>>
>> Estoy usando este código para convertir mis datos uin32 a float32.
>>
>> import numpy as np
>>
>> array_float32 = np.fromfile('pulsar_test_01_19273_1024ch.bin',
>> dtype=np.uint32).astype(np.float32)
>>
>> with open("pulsar_test_01_19273_1024ch_big", "wb") as output_array:
>>     output_array.write(array_float32.tostring())
>>
>> todo lo hace bien...sin embargo mis datos uint32 son big-endian y yo
>> necesito que los float32 sean little-endian.
>>
>> He leído que podría usar byteswap(True), pero aún no se si esta es mi
>> solución.
>>
>> Pueden sugerirme algo?
>>
>> Saludos
>>
>> Rolando
>>
>>
>>
>>
>> _______________________________________________
>> 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/20170509/9b102544/attachment.html>


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