У меня есть двумерный массив numpy с равным количеством столбцов и строк. Я хотел бы разместить их в более массивном массиве с меньшими по диагонали. Должно быть возможно указать, как часто исходная матрица должна быть на диагонали. Например:
a = numpy.array([[5, 7],
[6, 3]])
Итак, если бы я хотел, чтобы этот массив 2 раза по диагонали, желаемый результат был бы:
array([[5, 7, 0, 0],
[6, 3, 0, 0],
[0, 0, 5, 7],
[0, 0, 6, 3]])
В 3 раза:
array([[5, 7, 0, 0, 0, 0],
[6, 3, 0, 0, 0, 0],
[0, 0, 5, 7, 0, 0],
[0, 0, 6, 3, 0, 0],
[0, 0, 0, 0, 5, 7],
[0, 0, 0, 0, 6, 3]])
Есть ли быстрый способ реализовать это с помощью методов numpy и для произвольных размеров стартового массива (все еще учитывая, что начальный массив имеет одинаковое количество строк и столбцов)?