File tree 2 files changed +16
-4
lines changed
2 files changed +16
-4
lines changed Original file line number Diff line number Diff line change @@ -59,6 +59,12 @@ def memory_usage_of_objects(ndarray[object, ndim=1] arr):
59
59
cdef Py_ssize_t i, n
60
60
cdef int64_t s = 0
61
61
62
+ # The problem here is that...
63
+ # A SparseArray of size 1 that has fill_value = the only value
64
+ # will cause this
65
+
66
+ # n = 1
67
+ #
62
68
n = len (arr)
63
69
for i in range (n):
64
70
s += arr[i].__sizeof__()
Original file line number Diff line number Diff line change @@ -1069,12 +1069,18 @@ def memory_usage(self, deep=False):
1069
1069
--------
1070
1070
numpy.ndarray.nbytes
1071
1071
"""
1072
- if hasattr (self .values , 'memory_usage' ):
1073
- return self .values .memory_usage (deep = deep )
1072
+ # Use sparse values if they exist for memory consumption
1073
+ if hasattr (self .values , 'sp_values' ):
1074
+ values = self .values .sp_values
1075
+ else :
1076
+ values = self .values
1077
+
1078
+ if hasattr (values , 'memory_usage' ):
1079
+ return values .memory_usage (deep = deep )
1074
1080
1075
- v = self . values .nbytes
1081
+ v = values .nbytes
1076
1082
if deep and is_object_dtype (self ) and not PYPY :
1077
- v += lib .memory_usage_of_objects (self . values )
1083
+ v += lib .memory_usage_of_objects (values )
1078
1084
return v
1079
1085
1080
1086
def factorize (self , sort = False , na_sentinel = - 1 ):
You can’t perform that action at this time.
0 commit comments