使用numpy dstack元素?

时间:2014-07-31 14:43:24

标签: python numpy

我知道dstack可以这样做:

array([0, 1, 2])
array([3, 4, 5])

为:

array([[[0,3], 
        [1,4], 
        [2,5]]]

但我想要这个没有循环:

array([[[0,3],
        [0,4],
        [0,5],
        [1,3],
        [1,4],
        [1,5],
        [2,3],
        [2,4],
        [2,5]]])

有可能吗?这就像是一对多关系,我知道我可以做大熊猫,但会有更简单,更直接的方式吗?

1 个答案:

答案 0 :(得分:1)

np.repeatnp.tile方法可以满足您的需求。

x = np.array( [0,1,2] )
y = np.array( [3,4,5] )
z = np.dstack( (np.repeat(x,3), np.tile(y,3) ) )
>>> print z
array([[[0, 3],
        [0, 4],
        [0, 5],
        [1, 3],
        [1, 4],
        [1, 5],
        [2, 3],
        [2, 4],
        [2, 5]]])