我正在用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]
新阵列的顺序对我来说无关紧要。
任何帮助生成它的代码将非常感谢!提前致谢。
试试这个:
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