2016-04-13 15 views
0

ben 3d matrislerin bir listede götüren bir işlevi, yazmaya çalışıyorum içine.. 4d matrisin

3d matris listesini dönüştürme böylece .. listedeki her eleman şeklini (rows,cols, some_scalar). var. Ben yüzden output = (number_of_elements_in_matrix, rows,cols,some_scalar)

şimdiye kadar ben .. 4d matrisin içine yeniden şekillendirmek çalışıyorum ..

output = np.zeros((len(list_of_matrices), list_of_matrices[0].shape[0], list_of_matrices[0].shape[1], 
         list_of_matrices[0].shape[2]), dtype=np.uint8) 

Nasıl değerlerle bu çıkış 4d tensörünü doldurmak biliyoruz olduğu

def reshape_matrix(list_of_matrices): 
    output = np.zeros((len(list_of_matrices), list_of_matrices[0].shape[0], list_of_matrices[0].shape[1], 
          list_of_matrices[0].shape[2]), dtype=np.uint8) 


    return output 
+0

@Divakar: evet .. bir iş yaptı .. Eğer cevap olarak yazmak istiyorsanız o? – Fraz

cevap

1

np.stack ilk eksen boyunca (eksen = 0) kullanabilirsiniz, bu gibi -

np.stack(list_of_matrices,axis=0) 

Numune koşmak -

In [22]: # Create an input list of arrays 
    ...: arr1 = np.random.rand(4,5,2) 
    ...: arr2 = np.random.rand(4,5,2) 
    ...: arr3 = np.random.rand(4,5,2) 
    ...: list_of_matrices = [arr1,arr2,arr3] 
    ...: 

In [23]: np.stack(list_of_matrices,axis=0).shape 
Out[23]: (3, 4, 5, 2)