如何将稀疏字典转换为 python 中的 scipy.sparse 矩阵?
How to convert a sparse dict to scipy.sparse matrix in python?
我有一个非常大的字典,格式如下{str: [0, 0, 1, 2.5, 0, 0, 0, ...], str: [0, 0, 0, 1.1, 0, 0, ...], ...}
。每个 str 键的元素数量可能非常大,因此我需要一种有效的方法来存储和计算这些数据。
例如,现在我的 str 键字典有 100 个键。每个键都有一个值,它是一个包含 7000 个浮点元素的列表。 str 键和值的长度是常量。因此,假设 str key 的长度为 5,其值(列表)为 7000。
经过一些阅读,我发现 scipy.sparse 模块有一个很好的各种矩阵集合来存储稀疏数据,但是 scipy 文档是如此 sparse 我几乎无法理解发生了什么。
能否举例说明如何将上述字典转换为正确的矩阵类型?
使用标准 dict
方法,您可以获得一个键列表和另一个值列表。将第二个传递给 numpy.array
,您应该得到一个 100 x 7000 的数组。键列表也可以做成数组,但它可能不会比列表更有用。值数组可以变成稀疏矩阵。但是它的大小也不例外,而且数组有更多的方法。
明天我可以根据需要添加示例代码。
我有一个非常大的字典,格式如下{str: [0, 0, 1, 2.5, 0, 0, 0, ...], str: [0, 0, 0, 1.1, 0, 0, ...], ...}
。每个 str 键的元素数量可能非常大,因此我需要一种有效的方法来存储和计算这些数据。
例如,现在我的 str 键字典有 100 个键。每个键都有一个值,它是一个包含 7000 个浮点元素的列表。 str 键和值的长度是常量。因此,假设 str key 的长度为 5,其值(列表)为 7000。
经过一些阅读,我发现 scipy.sparse 模块有一个很好的各种矩阵集合来存储稀疏数据,但是 scipy 文档是如此 sparse 我几乎无法理解发生了什么。
能否举例说明如何将上述字典转换为正确的矩阵类型?
使用标准 dict
方法,您可以获得一个键列表和另一个值列表。将第二个传递给 numpy.array
,您应该得到一个 100 x 7000 的数组。键列表也可以做成数组,但它可能不会比列表更有用。值数组可以变成稀疏矩阵。但是它的大小也不例外,而且数组有更多的方法。
明天我可以根据需要添加示例代码。