преобразовать двоичную строку в массив numpy

Предположим, у меня есть строка:

my_data = '\x00\x00\x80?\x00\x00\x00@\x00\x00@@\x00\x00\x80@'

Откуда я это взял, не имеет значения, но ради чего-то конкретного предположим, что я прочитал его из двоичного файла.

Я знаю, что моя строка представляет собой двоичное представление 4 (4 -байтов )с плавающей запятой. Я хотел бы получить эти поплавки в виде массива numpy. Я мог сделать:

import struct
import numpy as np
tple = struct.unpack( '4f', my_data )
my_array = np.array( tple, dtype=np.float32 )

Но кажется глупым создавать промежуточный кортеж. Есть ли способ выполнить эту операцию без создания промежуточного кортежа?

РЕДАКТИРОВАТЬ

Я также хотел бы иметь возможность построить массив таким образом, чтобы я мог указать порядок байтов строки.

26
задан mgilson 1 August 2012 в 13:35
поделиться