PERF/CLN: restrict _isna_ndarraylike to actual ndarray/EA #40254
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.
xref #39146
I am looking at some
isna
related benchmarks, and noticing a lot of overhead related to checking of types. This makes_isna_ndarraylike
stricter to only handle ndarray and EA, and not Series/Index (and therefore also renamed it to_isna_array
).Reproducer from the
frame_methods.py::Isnull
benchmark:This gives a small improvement. But it further allows to directly use
_is_array
instead of the generalisna
from Manager.isna, which will give further improvements (but was planning to do this as a follow-up)