比较第2列中对应于python中第1列的相等值的值

问题描述 投票:0回答:1

我正在用Python编写代码。我的输入是一个(780,2)numpy数组,其值如下所示:

[100.2 45
 100.5 54
 200.2 62
 100.2 67
 100.5 88
 ...
 ...
 200.2 99]

以随机顺序。

我想比较第一列中与相等值对应的第二列中的值,然后创建一个仅包含最大值的新数组。我期待这样的输出:

[100.2 67
 100.5 88
 ...
 ...
 200.2 99]

新阵列的顺序对我来说无关紧要。

任何帮助生成它的代码将非常感谢!提前致谢。

python arrays numpy max min
1个回答
0
投票

试试这个:

input = np.array([[3, 11.1],[13, 22.2],[11, 33.3],[13, 44.4],[3,55.5]])
bbb = input.T
x = np.zeros(int(np.max(bbb[0]))+1)
np.maximum.at(x, np.array(bbb[0],dtype='int'), bbb[1])
np.array([[np.sort(list(set(bbb[0]))),x[np.nonzero(x)]]]).T
© www.soinside.com 2019 - 2024. All rights reserved.