我正在用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]
新数组的顺序对我来说无关紧要。
任何帮助生成代码的人将不胜感激! 预先感谢。
答案 0 :(得分: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