我有很多情况下计算遇到类似的事情:
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
答案 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毫秒。扩展到您执行的警告生成操作的次数*这些操作发生的次数,并且您将了解它花费了多少时间。
这些警告在计算日长工作中会花费几个计算时间吗?是。但是,在一天五分钟内答案会比在一天内得到答案更糟糕吗?可能不是。