python - 如何在 python 中将稀疏字典转换为 scipy.sparse 矩阵?

标签 python numpy matrix scipy

我有一个非常大的字典,格式如下 {str: [0, 0, 1, 2.5, 0, 0, 0, ...], str: [0, 0, 0, 1.1, 0, 0, ...], ...}。每个 str 键的元素数量可能非常大,因此我需要一种有效的方法来存储和计算这些数据。 例如,现在我的 str 键字典有 100 个键。每个键都有一个值,该值是包含 7000 个浮点元素的列表。 str 键和值的长度是恒定的。因此,假设 str 键的长度为 5,其值(这是一个列表)为 7000。

经过一番阅读后,我发现 scipy.sparse 模块有一个很好的各种矩阵集合来存储稀疏数据,但 scipy 文档是如此稀疏,我几乎无法理解是什么正在进行中。

您能否提供一个示例,说明如何将上面的字典转换为正确的矩阵类型?

最佳答案

使用标准的 dict 方法,您可以获得键的列表和值的另一个列表。将第二个传递给 numpy.array,您应该得到一个 100 x 7000 的数组。键列表也可以制成数组,但它可能并不比列表更有用。值数组可以转换为稀疏矩阵。但它的大小并不特殊,而且数组有更多的方法。

明天我可以根据需要添加示例代码。

关于python - 如何在 python 中将稀疏字典转换为 scipy.sparse 矩阵?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29018843/

相关文章:

python - Django | nginx 提供的静态文件不被客户端使用

python - sqrt 用于元素稀疏矩阵

python - Pandas 绘图错误地对图表上的分箱值进行排序

python - 在 TfidfVectorizer() 中输入文档术语频率矩阵?

python - 在安装需要 numpy 的包时,如何防止 pip 仅用 numpy 替换 numpy+mkl?

python - 如何在python中将数组转换为数组

r - 如何将组行 append 到数据框中

matlab - 从零点之间的现有矩阵创建一个新矩阵

performance - Matlab 重复矩阵乘法 - 循环与内置性能

java - Jython 中的类型错误?