Кто-нибудь знает, сколько памяти используется numpy ndarray? (предположим, 10 000 000 элементов с плавающей точкой).
Сколько памяти используется numpy ndarray?
Ответ 1
Массив просто хранится в одном последовательном блоке в памяти. Предполагая, что "float" означает стандартные числа с плавающей запятой двойной точности, тогда для массива потребуется 8 байтов на элемент.
В общем, вы можете просто запросить атрибут nbytes
для общей потребности в памяти массива и itemsize
для размера одного элемента в байтах:
>>> a = numpy.arange(1000.0)
>>> a.nbytes
8000
>>> a.itemsize
8
В дополнение к фактическим данным массива также будет небольшая структура данных, содержащая метаинформацию в массиве. Специально для больших массивов размер этой структуры данных пренебрежимо мал.