gpt4 book ai didi

Python - csr_matrix 的数据结构

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

我正在研究 TFIDF。我用过 tfidf_vectorizer.fit_transform。它返回一个 csr_matrix,但我无法理解结果的结构。

  • 数据输入:

documents = ( "The sky is blue", "The sun is bright", "The sun in thesky is bright", "We can see the shining sun, the bright sun" )

  • 声明:
tfidf_vectorizer = TfidfVectorizer()
tfidf_matrix = tfidf_vectorizer.fit_transform(documents)
print(tfidf_matrix)
  • 结果:

(0, 9) 0.34399327143
(0, 7) 0.519713848879
(0, 4) 0.420753151645
(0, 0) 0.659191117868
(1, 9) 0.426858009784
(1, 4) 0.522108621994
(1, 8) 0.522108621994
(1, 1) 0.522108621994
(2, 9) 0.526261040111
(2, 7) 0.397544332095
(2, 4) 0.32184639876
(2, 8) 0.32184639876
(2, 1) 0.32184639876
(2, 3) 0.504234576856
(3, 9) 0.390963088213
(3, 8) 0.47820398015
(3, 1) 0.239101990075
(3, 10) 0.374599471224
(3, 2) 0.374599471224
(3, 5) 0.374599471224
(3, 6) 0.374599471224

tfidf_matrix 是一个 csr_matrix。所以我找到了这个,但是没有与结果相同的结构:scipy.sparse.csr_matrix

值的结构是 (0, 9) 0.34399327143 ?

最佳答案

您看到的只是调用print(my_csr_mat) 时使用的string-representation。它列出了(在您的情况下)矩阵中的所有 nonzeros 。 (可能会有大量非零值的截断输出)。

因为这是一个稀疏矩阵,所以它有 2 个维度。

(0, 9) 0.34399327143

表示:矩阵元素@位置[0,9]为0.34399327143。

小演示:

import numpy as np
from scipy.sparse import csr_matrix

matrix_dense = np.arange(20).reshape(4,5)
zero_out = np.random.choice((0,1), size=(4,5), p=(0.7, 0.3))
matrix_dense_mod = matrix_dense * zero_out

print(matrix_dense_mod)

sparse_mat = csr_matrix(matrix_dense_mod)

print(sparse_mat)

输出:

[[ 0  0  2  0  4]
[ 0 6 0 8 0]
[ 0 11 0 13 14]
[15 0 0 18 19]]
(0, 2) 2
(0, 4) 4
(1, 1) 6
(1, 3) 8
(2, 1) 11
(2, 3) 13
(2, 4) 14
(3, 0) 15
(3, 3) 18
(3, 4) 19

我不确定你所说的是什么意思所以我找到了这个,但是没有与结果相同的结构,但要注意:scipy.sparse 文档中的大多数示例都有打印调用中的 my_mat.toarray(),这意味着它正在从具有不同字符串表示样式的稀疏矩阵构建密集数组

关于Python - csr_matrix 的数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45678491/

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