Ответ 1
>>> np.fromstring(b'\x00\x00\x80?\x00\x00\[email protected]\x00\[email protected]@\x00\x00\[email protected]', dtype='<f4') # or dtype=np.dtype('<f4'), or np.float32 on a little-endian system (which most computers are these days)
array([ 1., 2., 3., 4.], dtype=float32)
Или, если вы хотите big-endian:
>>> np.fromstring(b'\x00\x00\x80?\x00\x00\[email protected]\x00\[email protected]@\x00\x00\[email protected]', dtype='>f4') # or dtype=np.dtype('>f4'), or np.float32 on a big-endian system
array([ 4.60060299e-41, 8.96831017e-44, 2.30485571e-41,
4.60074312e-41], dtype=float32)
b
не требуется, прежде чем Python 3, конечно.
Фактически, если вы фактически используете двоичный файл для загрузки данных, вы можете даже пропустить шаг с использованием строки и загрузить данные непосредственно из файла с помощью numpy.fromfile()
.
Кроме того, ссылка dtype на всякий случай: http://docs.scipy.org/doc/numpy/reference/arrays.dtypes.html