import numpy as np
from scipy.sparse import csr_matrix, block_diag
def main():
a = np.array([[1,1,0],[1,2,0],[3,0,4]])
z = np.zeros*1
b = np.array([[1,11,0],[1,21,0],[33,0,0]])
mat_array = (a for i in range(10))
c_sp = block_diag(mat_array).toarray()
print(c_sp)
main()
scipy.sparceのblock_diagを使えば、行列をブロックとして扱い、それを対角方向に並べた疎行列を作ることが出来る。これが、大規模行列計算に役に立つとか。
詳しいdocumentはこちらを参照。
*1:3,3