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

如何用numpy将两个一维数组转换为二维坐标矩阵?

生成numpy数组的笛卡尔积坐标矩阵

你可以用numpy的meshgrid函数结合维度调整来实现这个需求,这是最简便的原生方法:

import numpy as np

r = np.array([1, 2, 3])
c = np.array([7, 8, 9])

# 生成网格坐标并转换为目标格式
m = np.array(np.meshgrid(r, c)).T.reshape(-1, 2)
print(m)

运行后输出:

[[1 7]
 [1 8]
 [1 9]
 [2 7]
 [2 8]
 [2 9]
 [3 7]
 [3 8]
 [3 9]]

原理说明:

  • np.meshgrid(r, c)会生成两个二维数组,分别对应行坐标的网格(形状为(3,3))和列坐标的网格(形状为(3,3))
  • .T将这两个数组的维度顺序调整,使坐标对按行优先排列
  • reshape(-1, 2)把整个结构重塑为N行2列的数组,每一行就是一组行-列坐标对

如果需要更直观的笛卡尔积实现,也可以用itertools.product,但对于大规模数组,纯numpy方法效率更高:

from itertools import product
import numpy as np

r = np.array([1, 2, 3])
c = np.array([7, 8, 9])

m = np.array(list(product(r, c)))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 01:03:15