Python で有向グラフの隣接行列を表すブール値の 2D リストがあります。このマトリックスをファイルに書き込もうとしていますが、マトリックス自体が非常に大きいため、ファイルに書き込む前にエンコードする方法を考え出そうとしていました。
各列を 2 進数として扱うことができると考えたので、これを 10 進数に変換してファイルに書き込むことができました。ただし、最初に、各エンコードが一意であることを確認するためにノードの数を記述します。
たとえば、行列が の[[False, True], [True, True]]
場合、ファイルは次のようになります。
2 (ノード数)
1 (10 進数で 01)
3 (10 進数で 11)
もちろん、括弧で囲まれたテキストなしで。
私の質問は次のとおりです。この行列をエンコードする別のよりスペース効率の良い (結果として得られるファイルが小さくなるなど) 方法はありますか?