我有一个非常大的字典,格式如下 {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/