小编典典

x 和 y 数组点的笛卡尔积到二维点的单个数组中

all

我有两个 numpy 数组,它们定义了网格的 x 轴和 y 轴。例如:

x = numpy.array([1,2,3])
y = numpy.array([4,5])

我想生成这些数组的笛卡尔积来生成:

array([[1,4],[2,4],[3,4],[1,5],[2,5],[3,5]])

以一种不是非常低效的方式,因为我需要在循环中多次执行此操作。我假设将它们转换为 Python 列表并使用itertools.product并返回到
numpy 数组并不是最有效的形式。


阅读 75

收藏
2022-07-27

共1个答案

小编典典

numpy.transpose([numpy.tile(x, len(y)), numpy.repeat(y, len(x))])
array([[1, 4],
[2, 4],
[3, 4],
[1, 5],
[2, 5],
[3, 5]])

2022-07-27