memoryview.nbytes
memoryview
- объект памяти буфера обменаАтрибут 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