首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用np.any()捕获异常值

使用np.any()捕获异常值
EN

Stack Overflow用户
提问于 2018-04-01 18:02:03
回答 1查看 65关注 0票数 0

我试图从一个数据帧中提取所有的上、下异常值。我可以在单独的行中这样做,将一个变量分配给上一级(例如。hi_outs = (sepal_outliers > 4.05))和另一个变量到较低的(例如。lo_outs = (sepal_outliers < 2.05))。但我想试着把这两个变量都放在一个变量中。

代码语言:javascript
复制
sepal_outliers = x[:,1]
outliers = np.any(sepal_outliers < 2.05, sepal_outliers > 4.05)
df[outliers]

我不知道为什么会出现以下错误。

TypeError: only integer scalar arrays can be converted to a scalar index

有什么想法吗?我该怎么做呢?我会继续读下去的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-01 18:06:34

您可能希望使用NumPy的布尔索引:

代码语言:javascript
复制
outliers = sepal_outliers[(sepal_outliers < 2.05) | (sepal_outliers > 4.05)]

也就是说,为您设置的条件的每个元素构造TrueFalse的布尔数组,并将其索引到同一个数组中,即sepal_outliers。注意,要做到这一点,您需要sepal_outliers作为一个NumPy数组,而不是一个公共的或花园的Python列表。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49601062

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档