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

從文字檔案載入資料的更彈性方法。

註解

不要依賴 tofilefromfile 的組合進行資料儲存,因為產生的二進位檔案不具備平台獨立性。特別是,不會儲存位元組順序或資料型別資訊。資料可以使用平台獨立的 .npy 格式,改用 saveload 進行儲存。

範例

建構 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')])