问题描述
我的代码中有多个实例,用于计算列表的平均值。因此,我正在寻找一种方法来显示代码行,与任何普通错误一样,在其中出现“空片均值”警告。
输入是常规列表np.array([1,2,3])
或numpy列表
File "file_name.py",line <line_number> in <folder_number>
所以我想要这样的东西:
test1 = np.mean([1,3])
print('test1',test1)
到目前为止,我可以打印出所有均值计算结果,如下所示:
directory <- paste0(format(Sys.time(),"%Y%m%d%H%M%S"),rnorm(1),rnorm(1))
dir.create(directory)
setwd(directory)
但是,我认为,对于代码中有许多此类计算的情况而言,这是多余的。
是否可以更改警告的配置,以使其返回此信息?
解决方法
您可以使用np.seterr(all='raise')
将所有numpy警告升级为错误。
这样,您的代码将在出现空片时抛出异常并中断,您将能够看到它发生的位置:
>>> import numpy as np
>>> np.seterr(all="raise")
{'divide': 'warn','over': 'warn','under': 'ignore','invalid': 'warn'}
>>> np.mean([]) # raises FloatingPointError