NumPy frombuffer 函数详解:从缓冲区创建数组
np.frombuffer 函数 将缓冲区解释为一维数组。缓冲区的大小必须是数组元素大小的整数倍。
语法:
np.frombuffer(buffer, dtype=None, count=-1, offset=0)
参数说明:
'buffer': 缓冲区对象,如字符串,字节数组等。'dtype': 返回数组的数据类型。如果不指定,则使用缓冲区的数据类型。'count': 要读取的元素数量。如果未指定,则将读取整个缓冲区。'offset': 要跳过的字节数。
返回值: 返回一个新的一维数组。如果缓冲区的大小不是数组元素大小的整数倍,则会引发 ValueError 异常。
示例:
import numpy as np
# 从字节数组创建数组
buffer = b'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
dtype = 'S1' # 字符串类型,每个字符占1个字节
array = np.frombuffer(buffer, dtype=dtype)
print(array)
# 从字符串创建数组
buffer = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
dtype = 'S1' # 字符串类型,每个字符占1个字节
array = np.frombuffer(buffer, dtype=dtype)
print(array)
# 使用 count 参数读取部分数据
buffer = b'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
dtype = 'S1'
array = np.frombuffer(buffer, dtype=dtype, count=5)
print(array)
# 使用 offset 参数跳过部分数据
buffer = b'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
dtype = 'S1'
array = np.frombuffer(buffer, dtype=dtype, offset=5)
print(array)
注意:
- 如果缓冲区的大小不是数组元素大小的整数倍,则会引发
ValueError异常。 frombuffer函数返回的是一个视图,即对原始缓冲区的引用,修改视图会影响原始缓冲区。
原文地址: https://www.cveoy.top/t/topic/mP1x 著作权归作者所有。请勿转载和采集!