python - 比较第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]
新数组的顺序对我来说并不重要。
任何有关生成它的代码的帮助将不胜感激!提前致谢。
解决方案
尝试这个:
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
推荐阅读
- cmake - 当我使用 conda 安装 CMake 时找不到 OpenMPI 头文件
- python - 如何在 python 中获取这样的输入?有多个线路和条件?
- php - 没有在 JSON 上获取数组
- python - 使用 OpenCV Python,显微视频
- c++ - 如何在 C++ 中递归地将十六进制转换为十进制?
- safari - Branchio Universal Deeplink 重定向到 safari 并显示弹出窗口以启动应用程序,即使应用程序安装在 iOS 13.3.1 中
- python - 如何在主应用程序 Pyqt 中插入产生其他线程的 matplotlib 图 ..?
- macos - Mac 上的 Google Chrome 中的区域设置代码不正确
- artifactory - Artifactory Pro 从 6.x 升级到 7.x 后出现 404
- docker - 在 k8s 进程中,“kube-controller-manager”是来自 docker conainer 的“子进程”。为什么 k8s 有这样的架构?