首页 > 解决方案 > 比较第2列中的值对应于python中第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]

新数组的顺序对我来说并不重要。

任何有关生成它的代码的帮助将不胜感激!提前致谢。

标签: pythonarraysnumpymaxmin

解决方案


尝试这个:

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

推荐阅读