РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
24 of 541 menu

Функция frombuffer

Функция frombuffer создает массив NumPy из буфера (например, из байтовой строки или другого объекта, поддерживающего протокол буфера). Первым параметром функция принимает буфер, вторым - тип данных элементов. Третьим параметром можно задать количество элементов, а четвертым - смещение (offset) для начала чтения данных.

Синтаксис

np.frombuffer(buffer, dtype, count, offset)

Пример

Давайте создадим байтовую строку и преобразуем её в массив целых чисел int32:

import numpy as np buf = b'\x01\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00' arr = np.frombuffer(buf, dtype=np.int32) print(arr)

Результат выполнения кода:

[1 2 3]

Пример

Давайте используем параметр count для чтения только первых двух элементов из буфера:

import numpy as np buf = b'\x01\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00' arr = np.frombuffer(buf, dtype=np.int32, count=2) print(arr)

Результат выполнения кода:

[1 2]

Пример

Давайте используем параметр offset для пропуска первых четырех байт и чтения данных со смещения:

import numpy as np buf = b'\x00\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00' arr = np.frombuffer(buf, dtype=np.int32, offset=4) print(arr)

Результат выполнения кода:

[1 2]

Пример

Давайте создадим массив из буфера с типом данных float32:

import numpy as np buf = b'\x00\x00\x80\x3f\x00\x00\x00\x40\x00\x00\x40\x40' arr = np.frombuffer(buf, dtype=np.float32) print(arr)

Результат выполнения кода:

[1. 2. 3.]

Пример

Давайте создадим изменяемый массив из буфера:

import numpy as np buf = bytearray(b'\x01\x00\x00\x00\x02\x00\x00\x00') arr = np.frombuffer(buf, dtype=np.int32) arr[0] = 5 print(arr) print(buf)

Результат выполнения кода:

[5 2] bytearray(b'\x05\x00\x00\x00\x02\x00\x00\x00')

Важно: если буфер доступен только для чтения (bytes), то массив также будет доступен только для чтения.

Смотрите также

  • функцию fromstring,
    которая создает массив из строки с данными
  • функцию fromiter,
    которая создает массив из итератора
  • функцию asarray,
    которая преобразует вход в массив без лишнего копирования
  • функцию array,
    которая создает массив из списка или кортежа
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить