2017-03-16 31 views
2

我想廣播數組給予fashion.I現在瓷磚()功能在numpy可用於廣播我試過了,但無法生成所需的輸出。如何使用Numpy的瓷磚功能要得到這個結果

input=[ [1,2], 
     [3,4], 
     [4,5] ] #shape(3X2) 
numpy.tile(input,----) 
out put= [ [ [1,2], 
      [1,2] 
      ], 
      [ [3,4], 
      [3,4] 
      ], 
      [ [4,5], 
      [4,5], 
      ] 
     ] #shape(3,2,2) 

回答

2

一種方法與np.repeat -

np.repeat(a,2,axis=0).reshape((a.shape) + (2,)) 

另外一個與np.repeat -

np.repeat(a[:,None],2,axis=1) # Or use np.newaxis in place of None 

隨着np.tile -

np.tile(a,2).reshape((a.shape) + (2,)) 
+0

感謝,這也是解決 –

+0

再次Thanks.Perfect –

1

另一種選擇我s到堆棧input與自身和transpose

np.stack([input] * 2).transpose(1, 0, 2) 

array([[[1, 2], 
     [1, 2]], 

     [[3, 4], 
     [3, 4]], 

     [[4, 5], 
     [4, 5]]]) 
+1

或者,如果你真的要走轉/ swapaxes方式,仍然滿足使用'np.tile'的要求:' np.tile(一個[...,無],2).swapaxes(1,2)'。 – Divakar

+0

我總是在檢查'熊貓'的問題,我忘記檢查'numpy'。在我的清單上,我可以繼續磨練'numpy'技能。 Thx爲+1 – piRSquared