为了账号安全,请及时绑定邮箱和手机立即绑定

Numpy:x和y数组点的笛卡儿乘积成二维点的单个数组

Numpy:x和y数组点的笛卡儿乘积成二维点的单个数组

白衣非少年 2019-06-10 17:15:30
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]])

看见使用numpy构建两个数组的所有组合的数组关于计算N个数组的笛卡儿乘积的一般解。


查看完整回答
反对 回复 2019-06-10
?
狐的传说

TA贡献1804条经验 获得超3个赞

您可以在python中进行正常的列表理解。

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


查看完整回答
反对 回复 2019-06-10
  • 3 回答
  • 0 关注
  • 2273 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信