рассмотрит массив со a
Каков наиболее эффективный способ найти позицию первого значения np.nan?
a = np.array([3, 3, np.nan, 3, 3, np.nan])
я мог бы сделать
np.isnan(a).argmax()
Но это требует найти все np.nan
просто найти первый.
Есть ли более эффективный способ?
Я пытался выяснить, смогу ли я передать параметр в np.argpartition
таким образом, что np.nan
прибудет отсортирован первым в отличии от последнего.
EDIT относительно [dup].
Существует несколько причин, по которым этот вопрос отличается.
- Этот вопрос и ответы касаются равенства ценностей. Это относится к
isnan
. - Эти ответы все страдают от той же проблемы, с которой я сталкиваюсь. Заметьте, я дал совершенно правильный ответ, но подчеркнул, что это неэффективность. Я ищу, чтобы исправить неэффективность.
EDIT относительно второго [DUP].
Все еще обращаясь к вопросу равенства и вопросов/ответов, старые и, возможно, устаревшие.
Возможный дубликат [Есть функция Numpy, чтобы вернуть первый индекс чего-либо в массиве?] (Http://stackoverflow.com/questions/432112/is-there-a-numpy-function-to-return -the-first-index-of-something-in-a-array) – Delgan
Возможный дубликат [Numpy: найти первый индекс значения быстро] (http://stackoverflow.com/questions/7632963/numpy-find-first- index-of-value-fast) – fuglede
Второй дублирует альтернативы «короткого замыкания». Часть 'isnan' эта проблема не делает ее уникальной. Но дурак датирован. – hpaulj