File tree Expand file tree Collapse file tree 3 files changed +23
-14
lines changed Expand file tree Collapse file tree 3 files changed +23
-14
lines changed Original file line number Diff line number Diff line change @@ -118,11 +118,14 @@ def memory_usage_of_objects(arr: object[:]) -> int64_t:
118
118
119
119
Does not include the actual bytes of the pointers
120
120
"""
121
+ i: Py_ssize_t
122
+ n: Py_ssize_t
121
123
size: int64_t
122
124
123
125
size = 0
124
- for value in arr:
125
- size += value.__sizeof__()
126
+ n = len (arr)
127
+ for i in range(n ):
128
+ size += arr[i].__sizeof__()
126
129
return size
127
130
128
131
@@ -279,17 +282,21 @@ def fast_unique_multiple(list arrays, sort: bool = True):
279
282
list of unique values
280
283
"""
281
284
cdef:
282
- ndarray[object ] buf_array
285
+ ndarray[object ] buf
286
+ Py_ssize_t k = len (arrays)
287
+ Py_ssize_t i, j, n
283
288
list uniques = []
284
289
dict table = {}
285
- object value, stub = 0
286
-
290
+ object val, stub = 0
287
291
288
- for buf_array in arrays:
289
- for value in buf_array:
290
- if value not in table:
291
- table[value] = stub
292
- uniques.append(value)
292
+ for i in range (k):
293
+ buf = arrays[i]
294
+ n = len (buf)
295
+ for j in range (n):
296
+ val = buf[j]
297
+ if val not in table:
298
+ table[val] = stub
299
+ uniques.append(val)
293
300
294
301
if sort is None :
295
302
try :
Original file line number Diff line number Diff line change @@ -137,8 +137,8 @@ def explode(ndarray[object] values):
137
137
138
138
if c_is_list_like(v, False ):
139
139
if len (v):
140
- for value in v :
141
- result[count] = value
140
+ for j in range ( len (v)) :
141
+ result[count] = v[j]
142
142
count += 1
143
143
else :
144
144
# empty list-like, use a nan marker
Original file line number Diff line number Diff line change @@ -1469,9 +1469,12 @@ def extract_freq(ndarray[object] values):
1469
1469
# TODO: Change type to const object[:] when Cython supports that.
1470
1470
1471
1471
cdef:
1472
+ Py_ssize_t i, n = len (values)
1472
1473
object value
1473
1474
1474
- for value in values:
1475
+ for i in range (n):
1476
+ value = values[i]
1477
+
1475
1478
try :
1476
1479
# now Timestamp / NaT has freq attr
1477
1480
if is_period_object(value):
@@ -1481,7 +1484,6 @@ def extract_freq(ndarray[object] values):
1481
1484
1482
1485
raise ValueError (' freq not specified and cannot be inferred' )
1483
1486
1484
-
1485
1487
# -----------------------------------------------------------------------
1486
1488
# period helpers
1487
1489
You can’t perform that action at this time.
0 commit comments