如何在Python中将稀疏dict转换为scipy.sparse矩阵?

时间:2015-03-12 19:40:59

标签: python numpy matrix scipy

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

经过一些阅读后,我发现 scipy.sparse 模块有很好的各种矩阵集合来存储稀疏数据,但scipy文档是如此稀疏我几乎无法理解什么& #39;继续。

您能举例说明如何将上面的字典转换为正确的矩阵类型吗?

1 个答案:

答案 0 :(得分:1)

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

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