python - 你如何在 Numpy 中找到 IQR?

标签 python numpy scipy

是否有内置的 Numpy/Scipy 函数来查找四分位数范围?我自己可以很容易地做到这一点,但是存在 mean() 基本上是 sum/len...

def IQR(dist):
    return np.percentile(dist, 75) - np.percentile(dist, 25)

最佳答案

np.percentile 接受多个百分位参数,你最好这样做:

q75, q25 = np.percentile(x, [75 ,25])
iqr = q75 - q25

iqr = np.subtract(*np.percentile(x, [75, 25]))

比对 percentile 进行两次调用:

In [8]: x = np.random.rand(1e6)

In [9]: %timeit q75, q25 = np.percentile(x, [75 ,25]); iqr = q75 - q25
10 loops, best of 3: 24.2 ms per loop

In [10]: %timeit iqr = np.subtract(*np.percentile(x, [75, 25]))
10 loops, best of 3: 24.2 ms per loop

In [11]: %timeit iqr = np.percentile(x, 75) - np.percentile(x, 25)
10 loops, best of 3: 33.7 ms per loop

关于python - 你如何在 Numpy 中找到 IQR?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23228244/

相关文章:

python - 将随机变量传递给 agg 函数 python

python - 在 numpy 中禁用静默转换

python - scipy.spatial.transform.Rotation 旋转数组与同一对象内的堆栈

python - scipy stats binom cdf 返回 nan

python - 基于中值绝对偏差 (MAD) 的异常值检测

python - 在列表中使用 .index 时,仅返回它第一次出现在数组中的时间

python - 无法安装触发网络自动化工具

Python C 扩展抛出段错误

python - Mac OS X 与 Linux 上的 Numpy 和内存分配

python - 根据最频繁的值删除列