在Python中表示稀疏矩阵而不使用库

时间:2016-07-24 01:44:53

标签: python data-structures

我希望在数据结构中用Python表示稀疏矩阵,这种数据结构不会浪费空间,但同时保留了持续的访问时间。这样做有什么简单/琐碎的方法吗?我知道像scipy这样的库有它。

3 个答案:

答案 0 :(得分:1)

scipy.sparse库根据目的使用不同的格式。全部实现2d矩阵

  • 键字典 - 数据结构是一个字典,坐标的元组作为键。这是最容易设置和使用的。

  • 列表列表 - 有2个列表列表。一个列表具有列坐标,其他列数据。每行矩阵一个子列表。

  • 咕咕 - 经典设计。 3个数组,行坐标,列坐标和数据值

  • 压缩行(或列) - coo的更复杂版本,针对数学运算进行了优化;基于线性代数数学几十年了

  • 对角线 - 适用于矩阵,大多数值都在几个对角线上

答案 1 :(得分:0)

有很多方法可以做到。例如,您可以保留一个列表,其中每个列表元素是您的一个数据对象,或者是一个表示N个空白项的整数。

答案 2 :(得分:0)

带有元组的Dict可能有效。