我需要将一个scipy稀疏矩阵转换为cvxopt的稀疏矩阵格式,即spmatrix,但目前还没有找到任何方法(当然,这个矩阵太大了,无法转换为密集矩阵)。有什么想法可以解决这个问题吗?
我需要将一个scipy稀疏矩阵转换为cvxopt的稀疏矩阵格式,即spmatrix,但目前还没有找到任何方法(当然,这个矩阵太大了,无法转换为密集矩阵)。有什么想法可以解决这个问题吗?
def scipy_sparse_to_spmatrix(A):
coo = A.tocoo()
SP = spmatrix(coo.data.tolist(), coo.row.tolist(), coo.col.tolist(), size=A.shape)
return SP
coo = A.tocoo()
SP = spmatrix(coo.data, coo.row.tolist(), coo.col.tolist())
来自http://cvxopt.org/userguide/matrices.html#sparse-matrices
cvxopt.spmatrix(x, I, J[, size[, tc]])
看起来很像 scipy.sparse
coo_matrix((data, (i, j)), [shape=(M, N)])
我的猜测是,如果A
是以coo
格式表示的矩阵,那么
cvxopt.spmatrix(A.data, A.row, A.col, A.shape)
这应该可以工作。(我没有安装cvxopt
来测试。)