numpy.fromfile#
- numpy.fromfile(file, dtype=float, count=-1, sep='', offset=0, *, like=None)#
從文字或二進位檔案中的資料建構陣列。
一種高效讀取已知資料型別的二進位資料,以及解析簡單格式化文字檔案的方法。使用 tofile 方法寫入的資料可以使用此函數讀取。
- 參數:
- file檔案或字串或路徑
開啟檔案物件或檔案名稱。
- dtype資料型別
傳回陣列的資料型別。對於二進位檔案,它用於決定檔案中項目的大小和位元組順序。大多數內建數值型別都受到支援,擴充型別也可能受到支援。
- count整數
要讀取的項目數量。
-1
表示所有項目(即完整檔案)。- sep字串
如果檔案是文字檔案,項目之間的分隔符號。空字串 (“”) 分隔符號表示檔案應被視為二進位檔案。分隔符號中的空格 (“ ”) 符合零或多個空白字元。僅由空格組成的分隔符號必須至少符合一個空白字元。
- offset整數
從檔案目前位置的位移量(以位元組為單位)。預設值為 0。僅允許用於二進位檔案。
- like類陣列, 選用
參考物件,允許建立非 NumPy 陣列的陣列。如果作為
like
傳入的類陣列支援__array_function__
協定,則結果將由其定義。在這種情況下,它可以確保建立與透過此引數傳入的物件相容的陣列物件。在 1.20.0 版本中新增。
另請參閱
load
,save
ndarray.tofile
loadtxt
從文字檔案載入資料的更彈性方法。
註解
不要依賴 tofile 和
fromfile
的組合進行資料儲存,因為產生的二進位檔案不具備平台獨立性。特別是,不會儲存位元組順序或資料型別資訊。資料可以使用平台獨立的.npy
格式,改用save
和load
進行儲存。範例
建構 ndarray
>>> import numpy as np >>> dt = np.dtype([('time', [('min', np.int64), ('sec', np.int64)]), ... ('temp', float)]) >>> x = np.zeros((1,), dtype=dt) >>> x['time']['min'] = 10; x['temp'] = 98.25 >>> x array([((10, 0), 98.25)], dtype=[('time', [('min', '<i8'), ('sec', '<i8')]), ('temp', '<f8')])
將原始資料儲存到磁碟
>>> import tempfile >>> fname = tempfile.mkstemp()[1] >>> x.tofile(fname)
從磁碟讀取原始資料
>>> np.fromfile(fname, dtype=dt) array([((10, 0), 98.25)], dtype=[('time', [('min', '<i8'), ('sec', '<i8')]), ('temp', '<f8')])
建議的儲存和載入資料方式
>>> np.save(fname, x) >>> np.load(fname + '.npy') array([((10, 0), 98.25)], dtype=[('time', [('min', '<i8'), ('sec', '<i8')]), ('temp', '<f8')])