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