相关疑难解决方法(0)

找到第一个np.nan值的最有效方法是什么?

考虑一下阵列 a

a = np.array([3, 3, np.nan, 3, 3, np.nan])
Run Code Online (Sandbox Code Playgroud)

我可以

np.isnan(a).argmax()
Run Code Online (Sandbox Code Playgroud)

但这需要找到所有np.nan只是为了找到第一个.
有更有效的方法吗?


我一直在试图弄清楚我是否可以传递一个参数,np.argpartition使np.nanget首先排序而不是last.


关于[dup]的编辑.
这个问题有几个不同的原因.

  1. 这个问题和答案涉及价值观的平等.这是关于isnan.
  2. 那些答案都遭遇了我的答案面临的同样问题.请注意,我提供了一个完全有效的答案,但强调它的效率低下.我正在寻找解决效率低下的问题.

关于第二次[dup]的编辑.

解决平等和问题/答案仍然很老,很可能已经过时了.

python numpy

13
推荐指数
3
解决办法
915
查看次数

为什么不是"numpy.any"懒惰(短路)

我不明白为什么还没有进行如此基本的优化:

In [1]: %timeit np.ones(10**6).any()
100 loops, best of 3: 7.32 ms per loop

In [2]: %timeit np.ones(10**7).any()
10 loops, best of 3: 59.7 ms per loop
Run Code Online (Sandbox Code Playgroud)

即使结论是第一项的证据,也扫描整个阵列.

python performance numpy

5
推荐指数
2
解决办法
662
查看次数

标签 统计

numpy ×2

python ×2

performance ×1