我知道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]]])
有可能吗?这就像是一对多关系,我知道我可以做大熊猫,但会有更简单,更直接的方式吗?
答案 0 :(得分:1)
np.repeat
和np.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]]])