numpy.frombuffer#
- numpy.frombuffer(buffer, dtype=float, count=-1, offset=0, *, like=None)#
将缓冲区解释为1维数组.
- 参数:
- bufferbuffer_like
一个暴露了缓冲区接口的对象.
- dtype数据类型,可选
返回数组的数据类型;默认:float.
- countint, 可选
要读取的项目数量.``-1`` 表示缓冲区中的所有数据.
- offsetint, 可选
从该偏移量(以字节为单位)开始读取缓冲区;默认值:0.
- like类似数组, 可选
引用对象,以允许创建不是 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)