从2D数组列表创建块对角矩阵的有效方法

时间:2018-08-19 11:17:55

标签: python-3.x performance

我有一个列表,其中包含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)矩阵,因此它在计算上总是很繁琐,但我想知道是否有更有效的方法。

0 个答案:

没有答案