RuntimeWarning对大数据计算性能的警告有多贵

时间:2016-05-25 17:49:47

标签: python pandas warnings runtimeexception

我有很多情况下计算遇到类似的事情:

open('/home/myName/myCode/myfile', 'rb')

我没有收到任何错误,但收到了-divide by zero -np.nan values in a column that I compute df['col'].quantile(0.5) -np.nan values in groupby objects that are then used like grouped.agg('sum') 条消息。现在,由于我的数据非常大,我想知道这些警告是否会导致性能下降,如果是这样,我可以绕过它们。

示例:

RuntimeWarning

1 个答案:

答案 0 :(得分:1)

警告相当于几个简单的操作,包括散列以确定是否已发出警告以及是否应多次发出该警告,以及警告发生的位置。这些很快,但它们不是免费的。

无论是否实际打印出警告,所有这些操作都会发生,这与用于确定发出警告的库是否应该警告您某些事情不是&#39的启发式算法的成本无关。非常正确。

以下是仅调用warning.warn

的价格细目
In [4]: %timeit [warnings.warn("Hey You") for i in range(1000)]
ipython-script.py:257: UserWarning: Hey You # Notice this only was printed once
1000 loops, best of 3: 1.2 ms per loop

In [6]: %timeit [i + i for i in range(1000)]
10000 loops, best of 3: 53.4 µs per loop

1000次警告操作的时间为1毫秒。扩展到您执行的警告生成操作的次数*这些操作发生的次数,并且您将了解它花费了多少时间。

这些警告在计算日长工作中会花费几个计算时间吗?是。但是,在一天五分钟内答案会比在一天内得到答案更糟糕吗?可能不是。