用Python构造对称块矩阵

用Python构造对称块矩阵,python,python-3.x,numpy,numpy-ndarray,numpy-ufunc,Python,Python 3.x,Numpy,Numpy Ndarray,Numpy Ufunc,例如,我得到了以下2D数组 a=np.array([[1,2,3], [2,5,6], [3,6,9]]) 如果我知道对角线的每个方块方阵的维数,即 2,3,2 如何生成以下二维块阵列 [[1,1,2,2,2,3,3], [1,1,2,2,2,3,3], [2,2,5,5,5,6,6], [2,2,5,5,5,6,6], [2,2,5,5,5,6,6], [3,3,6,6,6,9,9], [3,3,6,6,6,9,9]] 在(2,2)、(3,3)、(2,2)中,所有2元组的两个元素都相等。值

例如,我得到了以下2D数组

a=np.array([[1,2,3],
[2,5,6],
[3,6,9]])
如果我知道对角线的每个方块方阵的维数,即

2,3,2
如何生成以下二维块阵列

[[1,1,2,2,2,3,3],
[1,1,2,2,2,3,3],
[2,2,5,5,5,6,6],
[2,2,5,5,5,6,6],
[2,2,5,5,5,6,6],
[3,3,6,6,6,9,9],
[3,3,6,6,6,9,9]]

(2,2)、(3,3)、(2,2)
中,所有2元组的两个元素都相等。值得举一个不平等因素的例子,这样我们就可以看到它们的作用方向。或者,如果这两个元素必须相等,那么最好只指定一次,即
2,3,2
@alaniwi好的,谢谢你的建议,我只需更改问题
a.repeat([2,3,2],1).repeat([2,3,2],0)
@PaulPanzer Nice.@PaulPanzer惊奇,非常感谢你在
(2,2),(3,3),(2,2)中的两个元组
使两个元素相等。值得举一个不平等因素的例子,这样我们就可以看到它们的作用方向。或者如果这两个元素必须相等,那么最好只指定一次,即
2,3,2
@alaniwi好的,谢谢你的建议,我只需更改问题
a.repeat([2,3,2],1).repeat([2,3,2],0)
@PaulPanzer Nice.@PaulPanzer惊奇,非常感谢你