您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Python-ValueError:具有多个元素的数组的真值不明确。使用a.any()或a.all()

Python-ValueError:具有多个元素的数组的真值不明确。使用a.any()或a.all()

r是一个numpy(rec)数组。r["dt"] >= startdate(boolean)数组也是如此。对于numpy数组,该&操作返回两个布尔数组中的elementwise和。

该NumPy的开发者觉得有没有人通常理解的方式来评估布尔上下文中的数组:这可能意味着True,如果任何元素 True,或者它可能意味着True,如果所有元素True,或者True如果该数组有非0的长度,只是说出三种可能性。

由于不同的用户可能有不同的需求和不同的假设,因此NumPy开发人员拒绝猜测,而是决定每当尝试在布尔上下文中评估数组时就引发ValueError。应用于and两个numpy数组将导致两个数组在布尔上下文中求值(通过__bool__在python3__nonzero__Python2调用)。

你的原始代码

mask = ((r["dt"] >= startdate) & (r["dt"] <= enddate))
selected = r[mask]

看起来很正确。但是,如果确实需要and,则可以a and b使(a-b).any()或代替(a-b).all()

python 2022/1/1 18:24:14 有459人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶