python - 如何根据另一列中的条件查找 3D 数组中的最大列?
问题描述
我有一个包含 3 列的数组,需要找到第三列小于某个预定义值的第一列的最大值。
输入,例如:
a = [[ 1 2 1], [ 2 3 3], [ 7 10 5], [ 5 1 2], [ 2 3 4]]
期望的输出
最大值(a[:,0],其中 a[:,2] < 5) = [5 1 2]
这个怎么做?最好尽可能快。
解决方案
您可以使用np.argmax
:
subset = a[a[:, 2] < 5]
result = subset[subset[:, 0].argmax()]
print(result)
输出:
[5 1 2]
这将根据给定条件获取原始数组的子集,使用切片和 找到第一列中具有最高值的行的索引argmax
,并使用该值来索引子集。
推荐阅读
- javascript - 如何调用这个函数 10 次
- caching - 获取 Sitecore 缓存详细信息
- android - 有时我在从 android 调用 Web 服务时收到错误“连接时流意外结束”
- postgresql - 当过滤条件在 PostgreSQL 中取空时从表中获取一个空列
- php - 更新多列
- matlab - 在 MatLab 中计算平均曲率时出现意外结果
- javascript - 如何将带有 ArrayBuffer 的 JSON 对象发送到 websocket?
- datastax - Gremlin:如果是,则检查顶点是否存在,然后继续进行进一步的旅行
- yaml-cpp - 如何将带有前导零的数字字符串转储为 yaml-cpp 中的有效 yaml 字符串?
- javascript - 如何在javascript函数的帮助下以交替顺序打印数组元素?