获取多维数组中每列的最大值

新手马克

我正在尝试获取A,B和C列的最大值,并将这些值与它们发生的日期和时间联系起来。要获取最大值,我只需要使用List :: Util模块,但是我不确定如何将其指向数组中的特定列,然后引用日期和时间。

DATE    TIME    A   B   C
11/22/14    21:00:00    5,854   2,105   1,290
11/22/14    21:02:35    7,692   2,593   2,649
11/22/14    21:05:10    1,639   458 444
11/22/14    21:07:00    1,032   487 434
11/22/14    21:08:15    4,707   1,352   646
11/22/14    21:10:22    351 46  162
11/22/14    21:10:55    5,507   1,943   957
11/22/14    21:11:00    1,703   647 516
11/22/14    21:12:00    2,359   751 785
11/22/14    21:14:05    67  25  44
11/22/14    21:16:25    4,072   1,596   1,050
11/22/14    21:17:48    5,060   2,131   1,996
11/22/14    21:19:00    341 42  137
11/22/14    21:23:00    1,308   71  634
大卫·W

我的理解:

您最后需要三个数据:

  • A列中最高编号的日期和时间
  • B列中最高编号的日期和时间
  • C列中最高编号的日期和时间

您不想对数据进行排序。您不需要存储任何其他内容。

您没有指定任何代码,因此我不会为您提供完整的程序。您需要自己尝试。相反,我会给您一些提示:

您应该阅读参考书,以及它们如何工作。我们会将您的数据存储在参考中:

my %data;
$data{A}->{time} = "xxxxx";   # Time of highest item in column "A"
$data{A}->{date} = "xxxxx";   # Date of highest item in column "A"
$data{A}->{value} = "xxxx";   # Value of highest item in column "A"

与其他两列相同。

您可以遍历数据(是文件吗?您没有解释)

my %data;
while ( my $line .... ) {
    my ( $date, $time, a_value, b_value, c_value ) = split /\s*/, $line;
    if ( not exists $data{A}->{value} or $a_value > $data{A}->{value} ) {
        $data{A}->{value} = $a_value;
        $data{A}->{date}  = $date;
        $data{A}->{time}  = $time;
    }
    ...    # Same for B and C

在此循环中,$data{A}->{value如果该值高于我之前存储的值,则将}设置为我刚刚读取的值。这是寻求最高价值的常见方式。如果该值尚不存在,我还需要存储它。因此,我检查是否$data{A}->{value}存在。如果没有,我仍然需要存储该值。(我本来可以做的if ( not exists $data{A} or $a_value > $data{A}->{value} ))。

在while循环之后,%data将包含每一列的最大值,以及这些值的日期和时间。有很多代码重复。我可以为每列添加一个内部循环,但是仅用三列就不值得付出努力。

另外,请记住不要在数据中包含标题列。

如果$data{A}->{value}使您感到困惑,则可以使用三种不同的哈希值:一种用于存储日期,一种用于存储时间,另一种用于存储值。

my %times;
my %dates
my %values;
while ( my $line .... ) {
    my ( $date, $time, a_value, b_value, c_value ) = split /\s*/, $line;
    if ( not exists $values{A} or $a_value > $values{A} ) {
        $values{A} = $a_value;
        $dates{A}  = $date;
        $times{A}  = $time;
    }
    ...    # Same for B and C

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

javascript-在多维数组中获取最大值

来自分类Dev

从Java的每一列中获取最大值?

来自分类Dev

获取熊猫中每列的最大值数

来自分类Dev

如何沿轴使用 argmax 来获取 numpy 二维数组的每一列中的最大值?

来自分类Dev

从多列数组中获取最大值

来自分类Dev

使用Javascript从多维数组获取最大值

来自分类Dev

如何从多维数组中获取每个索引的最大值-javascript

来自分类Dev

如何按列获取 Pandas Dataframe 最大值以及每列最大值的 ID

来自分类Dev

从多维关联数组的最大值中检索键

来自分类Dev

从csv文件的每一列获取最大值

来自分类Dev

难以找到二维数组中每一列的最大值

来自分类Dev

如何获取嵌套列表python中每列的最大值?

来自分类Dev

如何在多维列表的列中打印最大值?

来自分类Dev

多维数组的逐元素最大值

来自分类Dev

多维数组javascript的最大值

来自分类Dev

从多维数组 (ndarray) 返回最大值

来自分类Dev

选择R中每列的最大值

来自分类Dev

如何计算Excel 2010中每列的最大值?

来自分类Dev

获取变量,其值是数组中的最大值

来自分类Dev

从值数组中获取多个最大值

来自分类Dev

Julia:获取沿特定轴的多维数组的范围(最小值/最大值)

来自分类Dev

如何获取DataFrame列中多个数组中对应项的最大值?

来自分类Dev

获取列的最大值

来自分类Dev

替换每列的最大值

来自分类Dev

从mongodb中的数组中获取最大值

来自分类Dev

从pandas数组中获取N个最大值,并保留索引和列标题

来自分类Dev

如何在Ruby中获取数组第二列的最大值和总和

来自分类Dev

获取每列A的每个不同值的列B的最大值

来自分类Dev

获取Java数组中n个最大值的索引

Related 相关文章

热门标签

归档