2014-09-22 225 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