2个数组之间的所有数字对

时间:2014-10-17 10:18:08

标签: python arrays numpy combinations

我试图使用numpy获取两个数组之间的所有数字对但没有成功。 基本上我需要的是一个外部产品,其中数字而不是乘以数字,即:。

a = np.array([1, 2])
b = np.array([3, 4])

np.Func(a, b)
>>> [[[1,3], [1,4]]
     [[2,3], [2,4]]]

我正在尝试np.meshgrid(a,b),但输出不是我所期望的。

2 个答案:

答案 0 :(得分:3)

您还可以使用meshgrid的transpose

>>> np.transpose(np.meshgrid(a, b))
array([[[1, 3],
        [1, 4]],

       [[2, 3],
        [2, 4]]])

答案 1 :(得分:2)

执行np.dstack后需要np.meshgrid

>>> a, b = np.array([1, 2]), np.array([3, 4])
>>> xs, ys = np.meshgrid(a, b)
>>> np.dstack([xs, ys])
array([[[1, 3],
        [2, 3]],

       [[1, 4],
        [2, 4]]])

要与问题中显示的订单相同,您可以使用np.transpose

>>> np.dstack([xs, ys]).transpose((1, 0, 2))
array([[[1, 3],
        [1, 4]],

       [[2, 3],
        [2, 4]]])