- sparse.identity(N): N*N的对角矩阵,对角元素为1
- sparse.bmat(blocks[, format, dtype]): 根据format的大小及其元素组织一个新的稀疏矩阵
转:
https://www.it610.com/article/1344360099082219520.htm
In [1]: A = np.arange(8).reshape(2, 4) In [2]: T = np.tri(5, 4) In [3]: L = [[8] * 4] * 2 In [4]: I = sparse.identity(4) In [5]: Z = sparse.coo_matrix((2, 3)) In [6]: sp.bmat([[ A, Z, L], ...: [None, None, I], ...: [ T, None, None]], dtype=int) Out[7]: <11x11 sparse matrix of type 'numpy.int64'>' with 33 stored elements in COOrdinate format> In [8]: _.toarray() # ipython previous output Out[9]: array([[0, 1, 2, 3, 0, 0, 0, 8, 8, 8, 8], [4, 5, 6, 7, 0, 0, 0, 8, 8, 8, 8], [0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0]])



