我正在研究一个情绪分析项目 . 我在sklearn上用了一袋文字 . 我想将行正常化,如下所示:
a = [1, 0, 1, 0, 0, 0, 0, 1, 0, 1]
#a -> 4 non zero values
规范化的向量应该是:
[0.25, 0.0, 0.25, 0.0, 0.0, 0.0, 0.0, 0.25, 0.0, 0.25]
对于b - > 8个非零值:
b = [1, 0, 1, 1, 0, 1, 1, 1, 1, 1]
规范化的向量应该是:
[0.125, 0.0, 0.125, 0.125, 0.0, 0.125, 0.125, 0.125, 0.125, 0.125]
class 'scipy.sparse.csr.csr_matrix
(0, 2111) 1
(0, 2812) 1
(0, 2848) 1
......
......
(0, 5745) 1
(0, 5823) 1
如何将操作应用于这样的矩阵?
我知道我可以使用'.toarray'方法将其转换为常规矩阵,但这会引起内存问题,矩阵是几个Gb .
1 回答
稀疏csr矩阵有一个
mean
方法,稀疏版本np.mean
:密集归一化:
稀疏归一化:
正如我刚才在关于稀疏点积的问题中所解释的那样,numpy函数和方法限制了稀疏矩阵的“知识” . 熟悉稀疏的方法和功能 . 如果这些还不够,那么我们可以探索替代方案 .