converter string binária em matriz numpy

Suponha que eu tenha a string:

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

Onde eu consegui isso é irrelevante, mas por causa de algo concreto, suponho que eu o li de um arquivo binário.

Eu sei que minha string é a representação binária de 4 (4 bytes) flutuantes. Eu gostaria de obter esses flutuadores como um array numpy. Eupoderia Faz:

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

Mas parece bobo criar uma tupla intermediária. Existe uma maneira de fazer essa operação sem criar uma tupla intermediária?

EDITAR

Eu também gostaria de poder construir o array de tal forma que eu possa especificar o endianness da string.

questionAnswers(1)

yourAnswerToTheQuestion