关系
TfidfVectorizer的结果是由csr_matrix这种方式组织的,在数据结构中稀疏矩阵的实现是csr_matrix。这是由于矩阵中有大量的0元素占据了大量的空间,从而采用稀疏矩阵来压缩空间。
csr_matrix可以调用toarray()
方法转变为真正的矩阵,利用numpy的索引方式来进行对元素的精确索引。
问题
但是有时候由于矩阵太大,而使得csr_matrix转变为numpy矩阵时,计算机的内存会“爆掉”。使得无法转变,这就会带来一个问题——无法使用简洁的方式来索引元素。
解决方法
getrow()
方法,需要输入行号,可以取出对应的行的数据,在利用toarray()
来将其转变为numpy的单行矩阵,就可以索引了。
getcol()
方法,与上述方法类似,但是以列为单位处理。
__getitem__()
方法,需要输入一个元组,这个tuple是代表了矩阵中元素的下标位置,返回的是对应位置的数据。
示例
print(csr)
>>(0, 40831) 0.21960834178465002
(0, 30192) 0.10678123442791115
(0, 10846) 0.18189940521778225
(0, 22745) 0.20618725734599005
(0, 45612) 0.0976692130846666
(0, 40065) 0.24275078611018666
(0, 49428) 0.05342573253991302
(0, 45671) 0.17495487380802463
(0, 21370