PERF/COMPAT: define platform int to np.intp #13972
Closed
Add this suggestion to a batch that can be applied as a single commit. This suggestion is invalid because no changes were made to the code. Suggestions cannot be applied while the pull request is closed. Suggestions cannot be applied while viewing a subset of changes. Only one suggestion per line can be applied in a batch. Add this suggestion to a batch that can be applied as a single commit. Applying suggestions on deleted lines is not supported. You must change the existing code in this line in order to create a valid suggestion. Outdated suggestions cannot be applied. This suggestion has been applied or marked resolved. Suggestions cannot be applied from pending reviews. Suggestions cannot be applied on multi-line comments. Suggestions cannot be applied while the pull request is queued to merge. Suggestion cannot be applied right now. Please check back later.
AFAIK this only affects 64 bit python on Windows.
numpywants annp.intp(i8 on Windows) as a indexer fortake, but pandas defines a "platform int" as anp.int_(i4 on Windows). This hits performance twice, because we often start with i8, cast to i4, then numpy will cast back to i8 in itstake.This is an alternative to #13924 - there I explored replacing
ndarray.takewith ourtake_ndfully, but this approach solves the perf problem without much pain or risking new segfaults.I'd still need to adjust a bunch of tests here to pass on Windows. This is an API change for "advanced" methods like
get_indexer, but I don't think anything is necessary beyond a doc note?ASV: