Предположим, у меня есть строка:
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 )
Но кажется глупым создавать промежуточный кортеж. Есть ли способ выполнить эту операцию без создания промежуточного кортежа?
РЕДАКТИРОВАТЬ
Я также хотел бы иметь возможность построить массив таким образом, чтобы я мог указать порядок байтов строки.