Skip to content

Commit db01b30

Browse files
authored
CLN libjoin int64->intp (#40601)
1 parent dd91e32 commit db01b30

File tree

5 files changed

+129
-101
lines changed

5 files changed

+129
-101
lines changed

pandas/_libs/join.pyx

+31-31
Original file line numberDiff line numberDiff line change
@@ -231,7 +231,7 @@ cdef ndarray[intp_t] _get_result_indexer(
231231
return res
232232

233233

234-
def ffill_indexer(const intp_t[:] indexer):
234+
def ffill_indexer(const intp_t[:] indexer) -> np.ndarray:
235235
cdef:
236236
Py_ssize_t i, n = len(indexer)
237237
ndarray[intp_t] result
@@ -275,15 +275,15 @@ ctypedef fused join_t:
275275
def left_join_indexer_unique(ndarray[join_t] left, ndarray[join_t] right):
276276
cdef:
277277
Py_ssize_t i, j, nleft, nright
278-
ndarray[int64_t] indexer
278+
ndarray[intp_t] indexer
279279
join_t lval, rval
280280

281281
i = 0
282282
j = 0
283283
nleft = len(left)
284284
nright = len(right)
285285

286-
indexer = np.empty(nleft, dtype=np.int64)
286+
indexer = np.empty(nleft, dtype=np.intp)
287287
while True:
288288
if i == nleft:
289289
break
@@ -324,7 +324,7 @@ def left_join_indexer(ndarray[join_t] left, ndarray[join_t] right):
324324
cdef:
325325
Py_ssize_t i, j, k, nright, nleft, count
326326
join_t lval, rval
327-
ndarray[int64_t] lindexer, rindexer
327+
ndarray[intp_t] lindexer, rindexer
328328
ndarray[join_t] result
329329

330330
nleft = len(left)
@@ -366,8 +366,8 @@ def left_join_indexer(ndarray[join_t] left, ndarray[join_t] right):
366366

367367
# do it again now that result size is known
368368

369-
lindexer = np.empty(count, dtype=np.int64)
370-
rindexer = np.empty(count, dtype=np.int64)
369+
lindexer = np.empty(count, dtype=np.intp)
370+
rindexer = np.empty(count, dtype=np.intp)
371371
result = np.empty(count, dtype=left.dtype)
372372

373373
i = 0
@@ -427,7 +427,7 @@ def inner_join_indexer(ndarray[join_t] left, ndarray[join_t] right):
427427
cdef:
428428
Py_ssize_t i, j, k, nright, nleft, count
429429
join_t lval, rval
430-
ndarray[int64_t] lindexer, rindexer
430+
ndarray[intp_t] lindexer, rindexer
431431
ndarray[join_t] result
432432

433433
nleft = len(left)
@@ -468,8 +468,8 @@ def inner_join_indexer(ndarray[join_t] left, ndarray[join_t] right):
468468

469469
# do it again now that result size is known
470470

471-
lindexer = np.empty(count, dtype=np.int64)
472-
rindexer = np.empty(count, dtype=np.int64)
471+
lindexer = np.empty(count, dtype=np.intp)
472+
rindexer = np.empty(count, dtype=np.intp)
473473
result = np.empty(count, dtype=left.dtype)
474474

475475
i = 0
@@ -517,7 +517,7 @@ def outer_join_indexer(ndarray[join_t] left, ndarray[join_t] right):
517517
cdef:
518518
Py_ssize_t i, j, nright, nleft, count
519519
join_t lval, rval
520-
ndarray[int64_t] lindexer, rindexer
520+
ndarray[intp_t] lindexer, rindexer
521521
ndarray[join_t] result
522522

523523
nleft = len(left)
@@ -564,8 +564,8 @@ def outer_join_indexer(ndarray[join_t] left, ndarray[join_t] right):
564564
count += 1
565565
j += 1
566566

567-
lindexer = np.empty(count, dtype=np.int64)
568-
rindexer = np.empty(count, dtype=np.int64)
567+
lindexer = np.empty(count, dtype=np.intp)
568+
rindexer = np.empty(count, dtype=np.intp)
569569
result = np.empty(count, dtype=left.dtype)
570570

571571
# do it again, but populate the indexers / result
@@ -673,12 +673,12 @@ def asof_join_backward_on_X_by_Y(asof_t[:] left_values,
673673
asof_t[:] right_values,
674674
by_t[:] left_by_values,
675675
by_t[:] right_by_values,
676-
bint allow_exact_matches=1,
676+
bint allow_exact_matches=True,
677677
tolerance=None):
678678

679679
cdef:
680680
Py_ssize_t left_pos, right_pos, left_size, right_size, found_right_pos
681-
ndarray[int64_t] left_indexer, right_indexer
681+
ndarray[intp_t] left_indexer, right_indexer
682682
bint has_tolerance = False
683683
asof_t tolerance_ = 0
684684
asof_t diff = 0
@@ -693,8 +693,8 @@ def asof_join_backward_on_X_by_Y(asof_t[:] left_values,
693693
left_size = len(left_values)
694694
right_size = len(right_values)
695695

696-
left_indexer = np.empty(left_size, dtype=np.int64)
697-
right_indexer = np.empty(left_size, dtype=np.int64)
696+
left_indexer = np.empty(left_size, dtype=np.intp)
697+
right_indexer = np.empty(left_size, dtype=np.intp)
698698

699699
if by_t is object:
700700
hash_table = PyObjectHashTable(right_size)
@@ -747,7 +747,7 @@ def asof_join_forward_on_X_by_Y(asof_t[:] left_values,
747747

748748
cdef:
749749
Py_ssize_t left_pos, right_pos, left_size, right_size, found_right_pos
750-
ndarray[int64_t] left_indexer, right_indexer
750+
ndarray[intp_t] left_indexer, right_indexer
751751
bint has_tolerance = False
752752
asof_t tolerance_ = 0
753753
asof_t diff = 0
@@ -762,8 +762,8 @@ def asof_join_forward_on_X_by_Y(asof_t[:] left_values,
762762
left_size = len(left_values)
763763
right_size = len(right_values)
764764

765-
left_indexer = np.empty(left_size, dtype=np.int64)
766-
right_indexer = np.empty(left_size, dtype=np.int64)
765+
left_indexer = np.empty(left_size, dtype=np.intp)
766+
right_indexer = np.empty(left_size, dtype=np.intp)
767767

768768
if by_t is object:
769769
hash_table = PyObjectHashTable(right_size)
@@ -816,14 +816,14 @@ def asof_join_nearest_on_X_by_Y(asof_t[:] left_values,
816816

817817
cdef:
818818
Py_ssize_t left_size, right_size, i
819-
ndarray[int64_t] left_indexer, right_indexer, bli, bri, fli, fri
819+
ndarray[intp_t] left_indexer, right_indexer, bli, bri, fli, fri
820820
asof_t bdiff, fdiff
821821

822822
left_size = len(left_values)
823823
right_size = len(right_values)
824824

825-
left_indexer = np.empty(left_size, dtype=np.int64)
826-
right_indexer = np.empty(left_size, dtype=np.int64)
825+
left_indexer = np.empty(left_size, dtype=np.intp)
826+
right_indexer = np.empty(left_size, dtype=np.intp)
827827

828828
# search both forward and backward
829829
bli, bri = asof_join_backward_on_X_by_Y(
@@ -867,7 +867,7 @@ def asof_join_backward(asof_t[:] left_values,
867867

868868
cdef:
869869
Py_ssize_t left_pos, right_pos, left_size, right_size
870-
ndarray[int64_t] left_indexer, right_indexer
870+
ndarray[intp_t] left_indexer, right_indexer
871871
bint has_tolerance = False
872872
asof_t tolerance_ = 0
873873
asof_t diff = 0
@@ -880,8 +880,8 @@ def asof_join_backward(asof_t[:] left_values,
880880
left_size = len(left_values)
881881
right_size = len(right_values)
882882

883-
left_indexer = np.empty(left_size, dtype=np.int64)
884-
right_indexer = np.empty(left_size, dtype=np.int64)
883+
left_indexer = np.empty(left_size, dtype=np.intp)
884+
right_indexer = np.empty(left_size, dtype=np.intp)
885885

886886
right_pos = 0
887887
for left_pos in range(left_size):
@@ -920,7 +920,7 @@ def asof_join_forward(asof_t[:] left_values,
920920

921921
cdef:
922922
Py_ssize_t left_pos, right_pos, left_size, right_size
923-
ndarray[int64_t] left_indexer, right_indexer
923+
ndarray[intp_t] left_indexer, right_indexer
924924
bint has_tolerance = False
925925
asof_t tolerance_ = 0
926926
asof_t diff = 0
@@ -933,8 +933,8 @@ def asof_join_forward(asof_t[:] left_values,
933933
left_size = len(left_values)
934934
right_size = len(right_values)
935935

936-
left_indexer = np.empty(left_size, dtype=np.int64)
937-
right_indexer = np.empty(left_size, dtype=np.int64)
936+
left_indexer = np.empty(left_size, dtype=np.intp)
937+
right_indexer = np.empty(left_size, dtype=np.intp)
938938

939939
right_pos = right_size - 1
940940
for left_pos in range(left_size - 1, -1, -1):
@@ -974,14 +974,14 @@ def asof_join_nearest(asof_t[:] left_values,
974974

975975
cdef:
976976
Py_ssize_t left_size, right_size, i
977-
ndarray[int64_t] left_indexer, right_indexer, bli, bri, fli, fri
977+
ndarray[intp_t] left_indexer, right_indexer, bli, bri, fli, fri
978978
asof_t bdiff, fdiff
979979

980980
left_size = len(left_values)
981981
right_size = len(right_values)
982982

983-
left_indexer = np.empty(left_size, dtype=np.int64)
984-
right_indexer = np.empty(left_size, dtype=np.int64)
983+
left_indexer = np.empty(left_size, dtype=np.intp)
984+
right_indexer = np.empty(left_size, dtype=np.intp)
985985

986986
# search both forward and backward
987987
bli, bri = asof_join_backward(left_values, right_values,

pandas/core/indexes/base.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -3925,15 +3925,15 @@ def join(
39253925
if len(other) == 0 and how in ("left", "outer"):
39263926
join_index = self._view()
39273927
if return_indexers:
3928-
rindexer = np.repeat(-1, len(join_index))
3928+
rindexer = np.repeat(np.intp(-1), len(join_index))
39293929
return join_index, None, rindexer
39303930
else:
39313931
return join_index
39323932

39333933
if len(self) == 0 and how in ("right", "outer"):
39343934
join_index = other._view()
39353935
if return_indexers:
3936-
lindexer = np.repeat(-1, len(join_index))
3936+
lindexer = np.repeat(np.intp(-1), len(join_index))
39373937
return join_index, lindexer, None
39383938
else:
39393939
return join_index

0 commit comments

Comments
 (0)