Scipy notes
1. Matrix
1.1. init
1.Coo_matrix sparse.coo_matrix((data, (r,c)), shape=(7,7)) r c 都是list,data也是list 加起来。 (适用于三种)
2.csr_matrix 1、创建 1)压缩法很麻烦 >>> indptr = np.array([0, 2, 3, 6]) >>> indices = np.array([0, 2, 2, 0, 1, 2]) >>> data = np.array([1, 2, 3, 4, 5, 6]) >>> csr_matrix((data, indices, indptr), shape=(3, 3)).toarray() >>> array([[1, 0, 2], >>> [0, 0, 3], >>> [4, 5, 6]]),
2)正常法 csr_matrix(data, row, col)
3)空矩阵法
csr_matrix((M, N), [dtype])) 4)特殊矩阵法 eye(m[, n, k, dtype, format]):对角线为1的稀疏矩阵 identity(n[, dtype, format]):单位矩阵 diags(diagonals[, offsets, shape, format, dtype]):构造对角矩阵(含偏移量) spdiags(data, diags, m, n[, format]):从矩阵中返回含偏移量的对角稀疏矩阵 hstack(blocks[, format, dtype]) Stack sparse matrices horizontally (column wise) vstack(blocks[, format, dtype]) Stack sparse matrices vertically (row wise)
3.CSC_matrix >>> sparse.csc_matrix((3, 4), dtype=np.int8).toarray() >>> array([[0, 0, 0, 0], >>> [0, 0, 0, 0], >>> [0, 0, 0, 0]], dtype=int8)
row = np.array([0, 2, 2, 0, 1, 2]) col = np.array([0, 0, 1, 2, 2, 2]) data = np.array([1, 2, 3, 4, 5, 6]) sparse.csc_matrix((data, (row, col)), shape=(3, 3)).toarray() array([[1, 0, 4], [0, 0, 5], [2, 3, 6]], dtype=int64)
indptr = np.array([0, 2, 3, 6]) indices = np.array([0, 2, 2, 0, 1, 2]) data = np.array([1, 2, 3, 4, 5, 6]) sparse.csc_matrix((data, indices, indptr), shape=(3, 3)).toarray() array([[1, 0, 4], [0, 0, 5], [2, 3, 6]])
1.2. transform
0、从np.array转入 Matrix(dense)
1、转为np.array test_x.data初始数据格式是int64 test_x.data = np.array(test_x.data, dtype=np.float64) .toarray()
2、转为np.matrix .todense()
3、转为另一种矩阵 Csr_matrix(另一种矩阵) .tocoo() .tocsr() .tocsc()
1.3. methods
1、.get_shape():返回稀疏矩阵的维度 2、.max([axis, out]):返回稀疏矩阵沿着某个轴的最大值 3、.reshape(self, shape[, order, copy]):将稀疏矩阵的维度重构 4、.diagonal([k]):返回第k个对角元素,但是在我的python3版本中k不起作用。 5、.dot(other):与other矩阵的矩阵乘法
6、 arcsin():每个元素进行arcsin运算 7、floor():每个元素进行floor运算 8、sqrt():每个元素进行sqrt运算 9、maximum(other):比较稀疏矩阵与other矩阵的每个元素,返回最大值 10、find(A):返回稀疏矩阵A中的非零元的位置以及数值
11、 issparse(x):x是否为sparse类型 isspmatrix(x):x是否为sparse类型 isspmatrix_csc(x):x是否为csc_matrix类型 isspmatrix_csr(x):x是否为csr_matrix类型 isspmatrix_bsr(x):x是否为bsr_matrix类型 isspmatrix_lil(x):x是否为lil_matrix类型 isspmatrix_dok(x):x是否为dok_matrix类型 isspmatrix_coo(x):x是否为coo_matrix类型 isspmatrix_dia(x):x是否为dia_matrix类型
12 .row (coo格式) .col