ebressert
ebressert

Reputation: 2439

Determining the byte size of a scipy.sparse matrix?

Is it possible to determine the byte size of a scipy.sparse matrix? In NumPy you can determine the size of an array by doing the following:

import numpy as np

print(np.zeros((100, 100, 100).nbytes)
8000000

Upvotes: 39

Views: 19671

Answers (1)

user545424
user545424

Reputation: 16189

A sparse matrix is constructed from regular numpy arrays, so you can get the byte count for any of these just as you would a regular array.

If you just want the number of bytes of the array elements:

>>> from scipy.sparse import csr_matrix
>>> a = csr_matrix(np.arange(12).reshape((4,3)))
>>> a.data.nbytes
88

If you want the byte counts of all arrays required to build the sparse matrix, then I think you want:

>>> print a.data.nbytes + a.indptr.nbytes + a.indices.nbytes
152

Upvotes: 64

Related Questions