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

如何获取二维数组中各元素的x、y坐标并生成指定格式数组

解决方案

要实现需求,你可以利用NumPy的索引生成工具快速获取每个元素的行、列坐标,再和原数组元素拼接成目标格式:

import numpy as np

arr = np.arange(4)
arr_2d = arr.reshape(2,2)

# 生成与原数组同形状的行、列坐标矩阵
rows, cols = np.indices(arr_2d.shape)

# 将原数组、行坐标、列坐标都扁平化后按列拼接
full_array = np.column_stack((arr_2d.flatten(), rows.flatten(), cols.flatten()))

print(full_array)

运行后输出:

[[0 0 0]
 [1 0 1]
 [2 1 0]
 [3 1 1]]

原理说明

  • np.indices(arr_2d.shape)会生成两个矩阵,分别对应原数组每个位置的行索引和列索引,比如对于2x2的数组,rows是[[0,0],[1,1]],cols是[[0,1],[0,1]]。
  • flatten()把二维结构转为一维,确保三个数组长度一致。
  • column_stack()将三个一维数组按列组合,形成每行包含「元素值、行坐标、列坐标」的二维数组。

你也可以用np.meshgrid实现同样效果,代码如下:

x, y = np.meshgrid(np.arange(arr_2d.shape[1]), np.arange(arr_2d.shape[0]))
full_array = np.column_stack((arr_2d.flatten(), x.flatten(), y.flatten()))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 19:45:41