Perl PDL - 获取向量中 80% 的最低值

标签 perl percentile pdl

是否有一个优雅的 PDL 函数,它接收一个值列表并返回一个包含 80% 的最低原始值的列表?

例如:
如果我有这样的列表: (9, 4, 1, 2, 7, 8, 3, 5, 6, 10)

在原始列表上调用此函数后,我想得到 (1, 2, 3, 4, 5, 6, 7, 8) (值的顺序无关紧要 - 不需要对值进行排序)。

我发现 PDL::Ufunc::oddpct 可以返回第 80 个百分位数,但我想获得该百分位数的值列表。我可以自己做,但如果有一些开箱即用的东西 - 为什么不使用它?

谢谢!!!

最佳答案

我建议你使用 pct得到第 80 个百分位数,结合 where原语选择低于该值的所有内容。使用您自己的数据看起来像这样

use strict;
use warnings;

use PDL;

my $list = pdl(9, 4, 1, 2, 7, 8, 3, 5, 6, 10);
print qsort $list->where($list <= $list->pct(80/100));

输出
[1 2 3 4 5 6 7 8]

关于Perl PDL - 获取向量中 80% 的最低值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9514644/

相关文章:

perl - 如何在 Perl 中从 mongoDB 获取返回的数据?

perl - binmode + mod_perl 2.0.5 + Parse::RecDescent = 段错误

perl - 对存储在哈希中的 AoA 进行操作。 PDL 与无 PDL

windows - 无法安装时间:Piece module with cpan

git-filter-branch 删除字符串,但其中字符串包含 $ '\和其他字符

python - 从除一列以外的所有列中过滤 Pandas 数据框中的异常值

python - 根据百分位数绘制直方图

python - 如何根据列的百分位数从 DataFrame 中采样?

perl - 将 PDL 分成两半

perl - PDL::Core 和 PDL::Core 之间的区别 ':Internal'