我有两个 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 数组并不是最有效的形式。
itertools.product
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]])