首页 > 解决方案 > Numpy根据百分位数删除二维数组的元素

问题描述

我有一个 numpy 数组,其列是价格值,行是日期。对于每一列,我想删除极值(X% 最低和 X% 最高值)。

我可以通过计算百分位数然后应用逻辑运算符来实现这一点:

 idx_kd = np.logical_and(values>np.percentile(values,x) , values<np.percentile(values,100-x))

是否有自动“剪辑”数据的内置功能?

标签: python-3.xnumpy

解决方案


事实上,np.clip,但它似乎要求其界限为绝对数字而不是百分位数,并且它不会删除异常值,而是将它们分别设置为最小值或最大值。


推荐阅读