我试图从一个数据帧中提取所有的上、下异常值。我可以在单独的行中这样做,将一个变量分配给上一级(例如。hi_outs = (sepal_outliers > 4.05))和另一个变量到较低的(例如。lo_outs = (sepal_outliers < 2.05))。但我想试着把这两个变量都放在一个变量中。
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
有什么想法吗?我该怎么做呢?我会继续读下去的。
发布于 2018-04-01 18:06:34
您可能希望使用NumPy的布尔索引:
outliers = sepal_outliers[(sepal_outliers < 2.05) | (sepal_outliers > 4.05)]也就是说,为您设置的条件的每个元素构造True或False的布尔数组,并将其索引到同一个数组中,即sepal_outliers。注意,要做到这一点,您需要sepal_outliers作为一个NumPy数组,而不是一个公共的或花园的Python列表。
https://stackoverflow.com/questions/49601062
复制相似问题