You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python实现numpy多维数组指定列最小值对应坐标查找

NumPy 最小距离坐标点最简实现

不需要写for循环,也不需要额外创建独立列表存储距离值,直接用NumPy原生的视图切片+索引方法就能实现,全程在原数组上操作,运行效率远高于Python层面的循环遍历。

函数实现

import numpy

def closestPoint(arr: numpy.ndarray) -> numpy.ndarray:
    # 切片取所有行的最后一列(距离列)为原数组视图,不生成新的独立数组
    min_distance_row = arr[:, -1].argmin()
    # 返回最小距离对应行的前两位坐标
    return arr[min_distance_row, :2]

测试验证

用给出的示例数组运行:

coords = numpy.array([[3,4,5], [5,12,13], [8,15,17]])
print(closestPoint(coords))

运行输出为[3 4],完全符合预期结果。

实现细节说明

  • arr[:, -1]是原数组最后一列的视图,没有复制数据,不会额外占用内存创建独立的距离值列表,满足要求
  • argmin()是NumPy内置方法,在C层面完成最小值索引查找,比手动写for循环遍历效率高几个量级
  • 最终取坐标时直接按行、列切片取值,没有冗余的中间变量或数据拷贝
  • 该写法对任意行数的同结构二维数组通用,只要每行最后一位是距离值就不需要修改代码,如果距离值固定在第3列(索引为2),把切片里的-1替换为2效果完全一致。

内容的提问来源于stack exchange,提问作者Joshua Li

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 10:42:51