【发布时间】:2012-08-01 13:14:37
【问题描述】:
假设我有字符串:
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 )
但是创建一个中间元组似乎很愚蠢。有没有办法在不创建中间元组的情况下执行此操作?
编辑
我还希望能够以我可以指定字符串的字节顺序的方式构造数组。
【问题讨论】:
-
@Aurelius 我会说这很接近,但不是完全重复。虽然答案相似,但这个问题是关于浮点数的,而这个问题是关于整数的。
标签: python numpy binary-data