Сообщить об ошибке.

Атрибут memoryview.nbytes в Python

Использование пространства буфера в байтах

Синтаксис:

memoryview.nbytes

Параметры:

Возвращаемое значение:

  • использование пространства в байтах

Описание:

Атрибут memoryview.nbytes доступный только для чтения. Показывает количество пространства в байтах, которое массив будет использовать в непрерывном представлении. nbytes == product(shape) * itemsize == len(m.tobytes()).

nbytes не обязательно равно len(m):

>>> import array
>>> a = array.array('i', [1,2,3,4,5])
>>> m = memoryview(a)
>>> len(m)
# 5
>>> m.nbytes
# 20
>>> y = m[::2]
>>> len(y)
# 3
>>> y.nbytes
# 12
>>> len(y.tobytes())
# 12

Многомерные массивы:

>>> import struct
>>> buf = struct.pack("d"*12, *[1.5*x for x in range(12)])
>>> x = memoryview(buf)
>>> y = x.cast('d', shape=[3,4])
>>> y.tolist()
# [[0.0, 1.5, 3.0, 4.5], [6.0, 7.5, 9.0, 10.5], [12.0, 13.5, 15.0, 16.5]]
>>> len(y)
# 3
>>> y.nbytes
# 96