Numpy Matrix Объем памяти низкий по сравнению с Numpy Array - PullRequest
0 голосов
/ 19 октября 2018

У меня есть файл .npz, который я хочу загрузить в оперативную память.Размер сжатого файла составляет 30 МБ.Я выполняю следующую операцию для загрузки данных в ОЗУ.

import numpy as np
from scipy import sparse
from sys import getsizeof

a = sparse.load_npz('compressed/CRS.npz').todense()
getsizeof(a)
# 136
type(a)
# numpy.matrixlib.defmatrix.matrix
b = np.array(a)
getsizeof(b)
# 64000112
type(b)
# numpy.ndarray

Почему numpy.matrix объект занимает очень маленький объем памяти по сравнению с numpy.arrray?И a, и b имеют одинаковые размеры и данные.

1 Ответ

0 голосов
/ 19 октября 2018

Ваша матрица a является представлением другого массива, поэтому базовые данные не учитываются в его getsizeof.Вы можете убедиться в этом, проверив, что a.base is not None, или увидев, что флаг OWNDATA равен False в a.flags.

Ваш массив b не является представлением, поэтому базовые данныепри расчете на getsizeof.

numpy.matrix экономия памяти не обеспечивается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...