numpy数组中指定列的最大值

时间:2015-05-02 07:46:24

标签: python arrays numpy

我们需要一个有3列的numpy数组的最大值。

示例,我需要最后一列的每个数组的最大值。 在这种情况下,结果是:第一个数组为57.65048981,第二个数组为58.3501091,第三个数组为56.86465836。如何在数组中包含2个值包含的数组中的这3个值?

[array([[ 402.        ,  242.        ,   57.65048981],
   [ 401.        ,  243.        ,   56.32482529]]), 
array([[ 356.        ,  257.        ,   53.3116188 ],
   [ 355.        ,  258.        ,   53.69690704],
   [ 356.        ,  258.        ,   57.52435684],
   [ 355.        ,  259.        ,   56.98838806],
   [ 356.        ,  259.        ,   57.81959152],
   [ 354.        ,  260.        ,   55.90369415],
   [ 355.        ,  260.        ,   58.14822769],
   [ 356.        ,  260.        ,   58.3501091 ],
   [ 354.        ,  261.        ,   55.1479187 ],
   [ 355.        ,  261.        ,   58.20180893],
   [ 354.        ,  262.        ,   54.5345459 ]]), 
array([[ 386.        ,  260.        ,   56.86465836],
   [ 386.        ,  261.        ,   54.28659439],
   [ 386.        ,  259.        ,   56.53445435]])]

结果应该是:

[[402, 242, 57.65048981],
[356 ,260, 58.3501091],
[386 ,260, 56.86465836]]

1 个答案:

答案 0 :(得分:3)

我认为您的"结果"

中存在错误
np.array([arr[np.argmax(arr[:, 2]), :] for arr in arrays])

返回

array([[ 402.        ,  242.        ,   57.65048981],
       [ 356.        ,  260.        ,   58.3501091 ],
       [ 386.        ,  260.        ,   56.86465836]])