Saya ingin menyiarkan array dengan cara tertentu. Saya sekarang fungsi tile() di numpy dapat digunakan untuk penyiaran saya mencobanya tetapi tidak dapat menghasilkan output yang diperlukan.

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
Naeem Rehmat 16 Maret 2017, 23:33

2 jawaban

Jawaban Terbaik

Satu pendekatan dengan np.repeat -

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

Satu lagi dengan np.repeat -

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

Dengan np.tile -

np.tile(a,2).reshape((a.shape) + (2,))
2
Divakar 16 Maret 2017, 20:40

Pilihan lain adalah menumpuk input dengan dirinya sendiri dan transpose

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

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

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

       [[4, 5],
        [4, 5]]])
1
piRSquared 16 Maret 2017, 20:59