scipy cipy将coo字符串直接转换为numpy矩阵

slhcrj9b  于 2022-11-10  发布在  其他
关注(0)|答案(1)|浏览(166)

我已经有一个coo矩阵格式的字符串(行,列,值):

0 0 -1627.761282
0 1 342.811259
0 2 342.811259
0 3 171.372276
0 4 342.744553
0 5 342.744553

现在我想把字符串直接转换成numpy矩阵。目前我必须把字符串写入文件,然后从文件创建一个numpy矩阵:

from scipy.sparse import coo_matrix
import numpy as np
with open("Output.txt", "w") as text_file:
    text_file.write(matrix_str)
text = np.loadtxt( 'Output.txt', delimiter=' ' , dtype=str)
rows,cols,data = text.T
matrix = coo_matrix((data.astype(float), (rows.astype(int), cols.astype(int)))).todense()

我如何将我的字符串直接转换为numpy矩阵而不写入文件?请帮助

bxjv4tth

bxjv4tth1#

您可以按如下方式使用StriongIO。

import numpy as np
from scipy.sparse import coo_matrix
import io

with io.StringIO(matrix_str) as ss:
    rows, cols, data = np.loadtxt(ss).T
matrix = coo_matrix((data.astype(float), (rows.astype(int), cols.astype(int)))).todense()

相关问题