使用numpy dstack元素



我知道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]]])

有可能吗?这就像一个多对多的关系,我知道我可以用熊猫来做,但有没有更简单、更直接的方法?

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

最新更新