numpy.frombuffer #

麻木的。frombuffer ( buffer , dtype = float , count = -1 , offset = 0 , * , like = None ) #

将缓冲区解释为一维数组。

参数
类似缓冲区的缓冲区

公开缓冲区接口的对象。

dtype数据类型,可选

返回数组的数据类型;默认值:浮动。

计数int,可选

要阅读的项目数。-1表示缓冲区中的所有数据。

偏移量int,可选

从该偏移量开始读取缓冲区(以字节为单位);默认值:0。

类似array_like,可选

允许创建非 NumPy 数组的引用对象。如果传入的类似数组like支持__array_function__协议,则结果将由它定义。在这种情况下,它确保创建一个与通过此参数传入的数组对象兼容的数组对象。

1.20.0 版本中的新增功能。

返回
输出数组

也可以看看

ndarray.tobytes

与此操作相反,从数组中的原始数据字节构造 Python 字节。

笔记

如果缓冲区中的数据不是机器字节顺序,则应将其指定为数据类型的一部分,例如:

>>> dt = np.dtype(int)
>>> dt = dt.newbyteorder('>')
>>> np.frombuffer(buf, dtype=dt) 

结果数组的数据不会被字节交换,但会被正确解释。

该函数创建原始对象的视图。一般来说,这应该是安全的,但当原始对象可变或不受信任时,复制结果可能是有意义的。

例子

>>> 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)