numpy.frombuffer#
- numpy.frombuffer(buffer, dtype=float, count=-1, offset=0, *, like=None)#
將緩衝區解譯為一維陣列。
- 參數:
- bufferbuffer_like
一個公開緩衝區介面的物件。
- dtypedata-type, optional
傳回陣列的資料型態;預設值:float。
- countint, optional
要讀取的項目數量。
-1
表示緩衝區中的所有資料。- offsetint, optional
從此偏移量(以位元組為單位)開始讀取緩衝區;預設值:0。
- likearray_like, optional
參考物件,允許建立非 NumPy 陣列的陣列。如果傳入為
like
的類陣列物件支援__array_function__
協定,則結果將由其定義。在這種情況下,它確保建立與透過此引數傳入的物件相容的陣列物件。版本 1.20.0 新增。
- 傳回值:
- outndarray
另請參閱
ndarray.tobytes
此操作的反向操作,從陣列中的原始資料位元組建構 Python 位元組。
註解
如果緩衝區的資料不是機器位元組順序,則應將其指定為資料型態的一部分,例如:
>>> dt = np.dtype(int) >>> dt = dt.newbyteorder('>') >>> np.frombuffer(buf, dtype=dt)
結果陣列的資料將不會進行位元組交換,但會被正確解譯。
此函數建立原始物件的檢視。這通常是安全的,但當原始物件是可變的或不受信任時,複製結果可能更有意義。
範例
>>> import numpy as np >>> s = b'hello world' >>> np.frombuffer(s, dtype='S1', count=5, offset=6) array([b'w', b'o', b'r', b'l', b'd'], dtype='|S1')
>>> np.frombuffer(b'\x01\x02', dtype=np.uint8) array([1, 2], dtype=uint8) >>> np.frombuffer(b'\x01\x02\x03\x04\x05', dtype=np.uint8, count=3) array([1, 2, 3], dtype=uint8)