refactor: np.where(cond) -> np.asarray(cond).nonzero() #2238
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.
The docs for
np.where()
(https://numpy.org/doc/stable/reference/generated/numpy.where.html) suggest to prefernonzero()
overwhere()
withoutx
andy
arguments. In the spirit of defensive programming I includednp.asarray(cond)
even wherecond
is already an array.This PR also fixes a bug I introduced in the model splitter in #2124: while E711 (https://www.flake8rules.com/rules/E711.html) dictates comparisons to
None
should use identity rather than equality, this rule should not be applied to NumPy array selection conditions as it will change the semantics:>>> a = np.array([None, None]) >>> a[a != None] array([], dtype=object) >>> a[a is not None] array([[None, None]], dtype=object)
Unrelatedly, mark
test_mt3d.py::test_mfnwt_keat_uzf()
slow, it should not be included in smoke tests (this was causing the optional dependency CI tests to fail due to timeout). And clean up some unused imports inconftest.py
.