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

如何使用Numpy筛选二维ndarray中y=0的元素并获取x最值坐标

解决方案

我们可以通过Numpy的布尔索引筛选目标子集,再结合argmin/argmax定位极值对应的坐标,全程用Numpy原生功能实现需求。

完整代码实现

import numpy as np

n2d = np.array(
[
    [10,0],
    [11,0],
    [12,0],
    [0,1],
    [100,1],
    [200,1],
    [20,0],
    [21,0],
    [22,0],
])

# 筛选所有y=0的坐标
filtered_coords = n2d[n2d[:, 1] == 0]

# 找到x值最小、最大的位置索引
min_x_idx = np.argmin(filtered_coords[:, 0])
max_x_idx = np.argmax(filtered_coords[:, 0])

# 提取目标坐标
min_coord = filtered_coords[min_x_idx]
max_coord = filtered_coords[max_x_idx]

print(min_coord)  # 输出 [10 0]
print(max_coord)  # 输出 [22 0]

步骤说明

  • 布尔索引筛选:n2d[:, 1] == 0生成布尔数组,标记每一行的y值是否为0,用该数组索引原数组即可得到所有y=0的坐标子集。
  • 定位极值索引:filtered_coords[:, 0]取筛选后数组的x列,np.argmin返回该列最小值的位置索引,np.argmax返回最大值的位置索引。
  • 提取坐标:用得到的索引从筛选后的数组中取出对应行,就是需要的目标坐标。

如果想一次性获取两个结果,可简化为:

result = filtered_coords[[np.argmin(filtered_coords[:, 0]), np.argmax(filtered_coords[:, 0])]]
print(result)
# 输出:
# [[10  0]
#  [22  0]]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 01:35:22