Python-x和y数组点的笛卡尔积变成2D点的单个数组

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

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数组不是最有效的形式。

回答:

>>> 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]])

以上是 Python-x和y数组点的笛卡尔积变成2D点的单个数组 的全部内容, 来源链接: utcz.com/qa/414849.html

回到顶部