我想為我的專案撰寫一些非常簡單的 python 輔助工具,該工具從 ECG 記錄中讀取二進制資料。我在某處發現 numpy.fromfile 是最合適的工具,所以我寫道:
#!/usr/bin/env python3
import sys
import numpy as np
arrayOfNums = np.fromfile(sys.argv[1], 'short')
print("Converting " sys.argv[1] "...")
conversionOutput = open("output", "x")
conversionOutput.write(np.array2string(arrayOfNums, separator=' '))
conversionOutput.close()
print("Conversion done.")
我這樣做是為了寫入未分隔的 2 位元組記錄的資料。輸入檔案對于一個簡單的文本檔案(超過 7MB)來說有點大,但我認為還不夠大,不會引起 numpy 麻煩。
我在檔案中得到的輸出:[-32243 -32141 -32666 ... -32580 -32635 -32690]
為什么中間有點?它似乎可以轉換它,但幾乎省略了它應該保存的所有內容。任何幫助,將不勝感激。
uj5u.com熱心網友回復:
Numpy 正確讀取您的檔案。為了避免長時間顯示,numpy 使用點:
import numpy as np
a = np.random.random(10000)
輸出:
>>> a
array([0.20902653, 0.80097215, 0.06909818, ..., 0.5963183 , 0.94024005,
0.31870234])
>>> a.shape
(10000,)
a 包含 10000 個值,而不僅僅是顯示的 6 個值。
更新
要顯示完整的輸出:
import sys
np.set_printoptions(threshold=sys.maxsize)
print(a)
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/410477.html
標籤:
下一篇:Python在字串末尾洗掉0
