2014-09-22 224 views
1

我从数字作用域中读取二进制数组,但之后无法对二进制数组执行任何操作。 在Matlab这是一个简单的工作: 数据是使用Python 2字节二进制数组转换为整数或浮点数

Data = double(Data); %covert data to double to be able to perform math 
的阵列(每样本2个字节的二进制格式) 它可以被转换为16位整数该指令

Data = typecast(uint8(Data),'int16'); %convert data to int16 

,然后漂浮

在Python中,我有一个名为dataIn的数组,从仪器中读取。我找不到将二进制数组转换为16位整数数组,然后转换为实数值向量的方法。

如果有人解决了这个问题,我将不胜感激。由于

回答

1

如果您使用numpy,这是很简单的:

data = numpy.fromstring(bytes_data, dtype=numpy.uint16) 
data = numpy.array(data, dtype=float) 
+0

没关系......我已经看到了,而我在写张贴的解决方案。非常感谢你,它的工作方式和预期的一样。我正在查找错误的部分(结构和数组转换)。我现在要阅读numpy的相关文档。 – 2014-09-22 21:50:45