从2个numpy向量生成数字对的数组

时间:2014-02-08 21:23:14

标签: python arrays numpy combinations

在Numpy中有一种简单的方法可以从2个1D numpy数组(向量)生成一对数字对,而不需要循环吗?

输入:

a = [1, 2, 3]
b = [4, 5, 6]

输出:

c = [(1,4), (1,5), (1,6), (2,4), (3,5), (2,6), (3,4), (3,5), (3,6)]

我想知道是否有一个功能与此类似:

c = []
for i in range(len(a)):
    for j in range(len(b)):
        c.append((a[i], b[j]))

1 个答案:

答案 0 :(得分:9)

您可以使用itertools.product

from itertools import product

c = list(product(a, b))

这给出了:

c == [(1, 4), (1, 5), (1, 6), (2, 4), (2, 5), (2, 6), (3, 4), (3, 5), (3, 6)]