我有一个列表,其中包含1000个不同大小的2D数组。每个阵列都是一个正方形矩阵,其尺寸范围从(2,2)到(40,40)。我正在尝试构建一个块对角矩阵,其中每个块都是mylist中的一个数组。到目前为止,这是我所做的:
import scipy.linalg
mylist = [ array1, array2, ... array1000]
blockmatrix = []
for i in range(len(mylist)):
blockmatrix = scipy.linalg.block_diag(blockmatrix, mylist[i])
这有效,但我认为这不是最有效的方法,因为我在for循环的每次迭代中都传递了整个块矩阵。 我最终得到了shape =(18797,18797)矩阵,因此它在计算上总是很繁琐,但我想知道是否有更有效的方法。