Przekształcenie 3D numpy.array do Listy list

0

Cześć, zastanawiam się jak najefektywniej przekształcić 3D tablicę Array(1500,100,100), czyli (siatkę 100x100 elementów po 1500 zapisów czasu), w tablicę Listę (10000) list zawierających po 1500 komórek.

W tym momencię próbuję wykorzystać metodę reshape i:

M_pool=(1500L,100L,100L)
M_pool=M_txy[:,:,:].reshape((M_txy.shape[0],M_txy.shape[1]*M_txy.shape[2])).T
otrzymuję=(10000L,1500L)

W tym momencie moje rozwiązanie wygląda następująco, natomiast może znacie bardziej zoptymalizowane podejście?


    M_pool2=[]

    M_pool=M_txy[:,:,:].reshape((M_txy.shape[0],M_txy.shape[1]*M_txy.shape[2])).T
    for arr in M_pool:
        M_pool2.append(arr[:].tolist())

    pool = Pool(processes=mp.cpu_count())  
    M = []
    M=map(do_fast_xy_fft,M_pool2)

    pool.close()
    pool.join()

    M = np.array(M).T


    M_fxy=M.reshape((M_txy.shape[0],M_txy.shape[1],M_txy.shape[2]))

KKing

0

Array(1500,100,100)

Czasami liczby kolumn i wierszy nie daje się na początku? Czyli (100, 100, 1500)?

Z cyklu moje kretyńskie pomysły:

import  numpy as np

M_pool=np.random.rand(100,100,1500)
M_pool = M_pool.flatten()
M_pool = np.reshape(M_pool, (-1,1500))

print(len(M_pool[0]))
print(M_pool.shape)

1 użytkowników online, w tym zalogowanych: 0, gości: 1