Ошибка при преобразовании трехмерного массива в двумерный

Всем привет, ошибка возможно перед глазами, но до меня не доходит почему то. Мне нужно использовать массив для обучения, но т.к. он трехмерный, выдается ошибка:

ValueError: Found array with dim 3. Estimator expected <= 2.

Я предположил если сделаю из трехмерного двумерный массив, у меня всё получится. Решил это реализовать так:

    import pandas as pd
    import numpy as np
    from numpy import array
    import h5py

    MOD = []
    X = []
    i = 0
    i1 = 0
    j = 0
    j1 = 0

    with h5py.File('D:\\PYTHON\\Dataset\\2018.01\\GOLD_XYZ_OSC.0001_1024.hdf5', 'r') as f:
        x = f['X'][:1000000:500]   
        y = f['Y'][:1000000:500]

        for i1 in range(len(x)): 
            for j1 in range(1024):
                X[i1][j1] = x[i1][j1][0]
    
        for i in range(len(x)):
            for j in range(24):  
                if np.any(y[i,j] == 1):
                    MOD.append(j)

        print (MOD)

Но выдается ошибка:

IndexError                                Traceback (most recent call last)
<ipython-input-210-f098d357d026> in <module>
     17     for i1 in range(len(x)):
     18         for j1 in range(1024):
---> 19             X[i1][j1] = x[i1][j1][0]
     20 
     21     for i in range(len(x)):

IndexError: list index out of range

Вероятно что в "третьей проекции" хранится мнимая часть числа, она мне не нужна поэтому оставляю только одну плоскость (двумерный массив). Возможно я сам по себе неправильный метод выбрал, подскажите что делать?

Вот такого формата данные в датасете:

    print (x.shape, y.shape)

(2000, 1024, 2) (2000, 24)

Ответы (1 шт):

Автор решения: xcapt

Чтобы преобразовать трехмерный массив в двухмерный можно использовать np.reshape

>>> a = [[0,1,2],
         [3,4,5],
         [6,7,8],
         [9,10,11]]
>>> np_a = np.array(a)
>>> np_a.shape
(4, 3)
>>> np_a.reshape(-1, 2).shape
(6, 2)
→ Ссылка