Python 性能流相当于numpy.isnan(X).any()

Python 性能流相当于numpy.isnan(X).any(),python,numpy,Python,Numpy,给定一个对象X,它可能是内存中的一个具有功能的映射,如numpy数组。。。或者一个比内存更大的生成器(在我的例子中特别是一个PyTorchIterableDataset) 如何在不运行到内存错误的情况下,有效地检查意外值,如np.isnan(X).any()或np.isinf(X).any() 例如,这两者之间的时间差相当大: %%次 np.isnan(范围(010000000)).any() #CPU时间1.37秒 %%次 尝试: 下一步(如果np.isnan(X),则X代表范围(0,100

给定一个对象
X
,它可能是内存中的一个具有
功能的映射,如numpy数组。。。或者一个比内存更大的生成器(在我的例子中特别是一个PyTorch
IterableDataset

如何在不运行到
内存错误的情况下,有效地检查意外值,如
np.isnan(X).any()
np.isinf(X).any()

例如,这两者之间的时间差相当大:

%%次
np.isnan(范围(010000000)).any()
#CPU时间1.37秒
%%次
尝试:
下一步(如果np.isnan(X),则X代表范围(0,10000000)内的X)
真的
除停止迭代外:
假的
#CPU时间8.18秒

如果可能的话,以良好的速度,最好避免嗅探
X
,并为map vs generator设置两个单独的代码路径。

也许您可以使用numba?