- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我知道这已得到部分回答 here .
无论如何,我不确定我是否实现了我想要的。我将简要说明我在做什么:
一切都很顺利,但我收到一些 numpy 运行时警告:
RuntimeWarning:空切片的平均值。
RuntimeWarning:在 double_scalars 中遇到无效值
给我带来麻烦的函数是实际提取执行此操作的值的函数:v = np.mean(v)
我知道错误可能是由零列表或某些 NaN/Inf 或值中的任何内容引起的。
我想通过从我的数据集中丢弃当前的 .json 样本来摆脱它们。
所以我设置了:np.seterr(all='warn')
我编写了这个笨拙的代码来 try catch 它:
def ExtracValues(d):
for v in d.values():
if isinstance(v, dict):
yield from ExtracValues(v)
else:
if isinstance(v,list):
# v = np.mean(v) #just averaging vectorial values of features. #it may be here that raises the empty slice warning of numpy.
try:
v = np.mean(v)
except Warning:
return #trying to trash samples which are no behaving good
yield v
我的问题是我不知道它是否有效工作,因为警告仍然打印在标准输出上。我想代码应该在设置 all="Warning"
后停止,但我如何轻松检查我是否正确?
此外,是否有更 pythonic 的方法来缩短该函数。我真的不喜欢以这种方式嵌套的 try/except
。
最佳答案
感谢 Jürg Merlin Spaak 的评论,我找到了一个更好更简单的解决方案。在我恢复到原始版本的函数之外捕获异常显然更好:
def ExtractValues(d):
for v in d.values():
if isinstance(v, dict):
yield from ExtractValues(v)
else:
if isinstance(v,list):
v = np.mean(v)
yield v
我在代码的主要部分将所有内容都设置为警告:
np.seterr(all='warn')
然后捕获他们:
with warnings.catch_warnings():
warnings.filterwarnings('error')
try:
raw_features = list(ExtractValues(data))
except Warning as e:
print('Houston, we have a warning:', e)
print('The bad guy is: ' + current_file)
print('This sample will not be considered.')
pass
else:
#Whatever
值得注意的是,无论谁来这里都是为了同样的异常(exception)。我成功地捕获了这两个警告,但是 print(e)
只会告诉您“空切片的平均值”。我能猜到原因,但我太累了,无法进一步调查。
关于python - 将 numpy runtimewarning 捕获为异常并抑制它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45631716/
给定今天的日期范围以过滤 Django 中的条目: today_min = datetime.datetime.combine(timezone.now(), datetime.time.min) t
我正在处理一个可以暂停组织的测试用例。目前,我正在使用 freezegun 来卡住固定时间,这是一个带有 tzinfo=pytz.UTC 的 datetime.datetime 对象。 在下面的测试中
当我运行 pyOpenTld 时,我得到 RuntimeWarning: overflow encountered in int_scalars从这个模块。为什么会这样? Warning (from
当我在最底部运行回归代码时,我不断收到 RuntimeWarning。我不确定如何修复它们。我相信它可能是 attencoef 列表,因为其中有一些 nan 值。有什么建议么? 这些是我得到的错误:
我最近开始学习 pandas,我正在尝试分析 Stack Overflow 开发人员调查。我正在尝试学习 groupby 函数: country_grp=df.groupby(['Country'])
这个问题在这里已经有了答案: In Python, how does one catch warnings as if they were exceptions? (8 个答案) 关闭 2 年前。
这个问题在这里已经有了答案: How to disable Python warnings? (12 个回答) 6年前关闭。 我有一些 python 代码,在某些时候,它采用带有 nans 的合理稀疏
试图将一些记录发送到我的数据库中。我按以下格式发送日期: 2017-08-06 00:41:58 但收到消息: RuntimeWarning: DateTimeField myTable.test r
我正在尝试将“C”代码移植到Python,这就是我编码的内容: scale = 1.0 / (rows * cols) RemoveConstantBiasFrom(rarray, scale) za
我知道这已得到部分回答 here . 无论如何,我不确定我是否实现了我想要的。我将简要说明我在做什么: 通读大量的 json 文件嵌套结构。 从中提取最低级别的值并在这些值是列表时取平均值。 将这些值
当使用 numpy.power(2,N) 时,N 是一个整数,我遇到了以下问题: In[1] np.power(2,63) Out[1] -9223372036854775808 RuntimeWar
在相当大的管道上运行 numpy 时,我收到这样的警告。 运行时警告:在 true_divide 中遇到无效值 RuntimeWarning:在更大的范围内遇到无效值 除了编写许多打印语句外,我如何找
我正在尝试打包我的项目以进行分发,但我在运行模块时遇到了 RuntimeWarning。 我在 Python mailing list 上发现了一个错误报告。这表明 RuntimeWarning 是
我正在尝试过滤查询集以获取今年的所有帖子。 def thisYearQuerySet(objects): start_day = datetime.date(datetime.date.tod
我试图通过更改两个参数(e 和 A)来拟合曲线。目标曲线是通过指定n0=0.395绘制的,但其实际值为0.0395。所以我希望通过改变e和A来实现相同的曲线。 import numpy as np f
我正在尝试确定用于现实世界数据的最佳模型函数和参数。我有几个数据集,它们都表现出类似的指数衰减,我想计算每个数据集的拟合函数参数。 最大的数据集在 x 轴上从 1 到大约 1,000,000 不等,在
import pandas import math from csv import reader import sys import numpy as np from pandas.plotting
你好,我已经尝试自己解决这个问题一个多星期了,但我认为是时候提出这个问题了。 这是我的第一个 python 程序,我打算用各种功能控制我的水族馆。 我编写的第一个函数是照明时间表(为这篇文章缩短了代码
我正在尝试将二维 numpy 数组的所有行值和列值与显式 for 循环 相乘: product_0 = 1 product_1 = 1 for x in arr: product_0 *= x[
我正在使用 numpy.optimize.fsolve 进行一些计算.由于初始值不正确,其中一些计算导致 RuntimeWarning 告诉 RuntimeWarning: The iteration
我是一名优秀的程序员,十分优秀!