📜  Python numpy.frombuffer()(1)

📅  最后修改于: 2023-12-03 15:04:06.778000             🧑  作者: Mango

Python numpy.frombuffer()

简介

numpy.frombuffer() 是一个 NumPy 函数,用于将任意对象转换为 NumPy 数组。它从缓冲区创建一个新的 1 维数组,该缓冲区通常是一个 buffer-like 对象,如字节字符串。可以通过设置 dtype 参数来指定所创建数组的数据类型。

语法
numpy.frombuffer(buffer, dtype=float, count=-1, offset=0)

参数说明:

  • buffer:缓冲区对象,可以是字节字符串或类似对象的缓冲区。
  • dtype:返回数组的数据类型,默认为float
  • count:要从缓冲区中读取的项目数,默认为 -1,表示读取整个缓冲区。
  • offset:缓冲区的起始位置偏移,默认为 0
返回值

numpy.frombuffer() 函数返回一个新的 1 维数组。

示例

下面是一个使用 numpy.frombuffer() 函数的示例:

import numpy as np

buffer = b'Hello World'
arr = np.frombuffer(buffer, dtype='S1')
print(arr)

输出:

[b'H' b'e' b'l' b'l' b'o' b' ' b'W' b'o' b'r' b'l' b'd']
说明

在上面的示例中,我们从字节字符串 b'Hello World' 创建了一个新的 1 维数组。通过将 dtype 参数设置为 'S1',我们指定了数组的数据类型为 1 字节的字符串。因此,输出结果是一个字符串数组,每个字符都被存储为一个单独的元素。

除了字节字符串,我们还可以使用其他 buffer-like 对象,如 ndarraybytesmemoryview 等等,作为参数传递给 numpy.frombuffer() 函数。

import numpy as np

arr = np.array([1, 2, 3, 4, 5], dtype='i4')
buffer = arr.tobytes()
new_arr = np.frombuffer(buffer, dtype='i4')
print(new_arr)

输出:

[1 2 3 4 5]

在上述示例中,我们将一个 4 字节整数数组转换为字节字符串,并通过 numpy.frombuffer() 函数将其转换回原始整数数组。

注意事项
  • numpy.frombuffer() 函数只是从缓冲区创建了一个新的数组对象,并不生成缓冲区的副本。因此,对返回的数组对象的修改也会修改原始缓冲区的内容。