gpt4 book ai didi

python - (Python Scipy) 如何展平 csr_matrix 并将其附加到另一个 csr_matrix?

转载 作者:行者123 更新时间:2023-11-28 22:56:29 24 4
gpt4 key购买 nike

我将每个 XML 文档表示为 csr_matrix 格式的特征矩阵。现在我有大约 3000 个 XML 文档,我得到了一个 csr_matrices 列表。我想将这些矩阵中的每一个展平成为特征向量,然后我想将所有这些特征向量组合起来形成一个 csr_matrix,将所有 XML 文档表示为一个,其中每一行是一个文档,每一列是一个特征。

实现此目的的一种方法是通过此代码

X= csr_matrix([a.toarray().ravel().tolist() for a in ls])

其中 ls 是 csr_matrices 的列表,但是,这是非常低效的,对于 3000 个文档,这简直就是崩溃!

换句话说,我的问题是,如何展平该列表“ls”中的每个 csr_matrix 而不必将其转换为数组,以及如何将展平的 csr_matrix 附加到另一个 csr_matrix。

请注意,我使用的是 python 和 Scipy

提前致谢!

最佳答案

为什么每个XML都使用csr_matrix,也许使用lil会更好,lil_matrix支持reshape方法,这里是一个例子:

N, M, K = 100, 200, 300
matrixs = [sparse.rand(N, M, format="csr") for i in xrange(K)]
matrixs2 = [m.tolil().reshape((1, N*M)) for m in matrixs]
m1 = sparse.vstack(matrixs2).tocsr()

# test with dense array
#m2 = np.vstack([m.toarray().reshape(-1) for m in matrixs])
#np.allclose(m1.toarray(), m2)

关于python - (Python Scipy) 如何展平 csr_matrix 并将其附加到另一个 csr_matrix?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15563396/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com