Numpy:x和y数组点的笛卡儿乘积成二维点的单个数组我有两个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数组并不是最有效的形式。
3 回答
慕森王
TA贡献1777条经验 获得超3个赞
>>> 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]])
狐的传说
TA贡献1804条经验 获得超3个赞
x = numpy.array([1,2,3])y = numpy.array([4,5])[[x0, y0] for x0 in x for y0 in y]
[[1, 4], [1, 5], [2, 4], [2, 5], [3, 4], [3, 5]]
添加回答
举报
0/150
提交
取消