2012-06-23 51 views

Trả lời

26

Một ma trận thưa thớt được xây dựng từ mảng NumPy thường xuyên, vì vậy bạn có thể lấy số byte cho bất kỳ của các bạn sẽ giống như một mảng thường xuyên .

Nếu bạn chỉ muốn số byte của phần tử mảng:

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

Nếu bạn muốn đếm byte của tất cả các mảng cần thiết để xây dựng ma trận thưa thớt, sau đó tôi nghĩ rằng bạn muốn:

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

Đẹp, điều đó hoạt động rất tốt. Tôi quan tâm nhiều hơn trong trường hợp đầu tiên, nhưng trường hợp thứ hai là thú vị. Kích thước bộ nhớ đó đại diện cho toàn bộ đối tượng? – ebressert

+0

Không, chỉ là mảng. Xem http://stackoverflow.com/questions/33978/find-out-how-much-memory-is-being-used-by-an-object-in-python. – user545424

+2

Đối với coo_matrix, nó phải là a.col.nbytes + a.row.nbytes + a.data.nbytes – czxttkl

Các vấn đề liên quan