Python & Numpy - преобразовать массив 10x10, где каждая ячейка представляет собой массив 20x20, в 10x10x20x20
У меня странная проблема, когда у меня есть файл.mat, который входит в массив 10x10, где каждый индекс представляет собой массив 20x20, представляющий серое изображение. Итак, у меня есть 10 испытаний, и каждое испытание представляет собой временной ряд с 10 интервалами, и каждый интервал отслеживается как изображение 20x20. Чтобы запустить тензорную регрессию на этом, используя тензорно, это должно быть отформатировано как тензор (следы, временные ряды, x-dim, y-dim). Есть ли чистый способ сделать это? Я попробовал np.reshape в файле mat, но это не сработает, потому что размеры файла mat составляют 10x10, потому что, как я сказал, каждая ячейка массива имеет размер 20x20.
Так, например, предположим, что файл mat имеет имя переменной mat_var. Тогда mat_var[0,0] будет массивом 20x20, а mat_var будет массивом 10x10
Цель состоит в том, чтобы преобразовать массив 10x10, каждый индекс которого представляет собой массив 20x20, в массив 10x10x20x20.
1 ответ
Так очевидно, если вы сделаете tenor = np.full((10,10,20,20),0), тогда вы можете установить каждую ячейку соответственно, например
тензор [x,y] = mat[x,y]
и он просто заполнит 20x20, если размер массива также 20x20