非圧縮2Dマトリックスを保存するのに最適なファイル形式は何ですか?
-
16-10-2019 - |
質問
私の特定のケースの価値は対称行列ですが、この質問はより一般的に答える必要があります。
解決
最も互換性のある形式は、確かにCSV/TSVです。それはテキストであり、通常、使用しているソフトウェアパッケージを使用して、その場でそれをGZIPできます。マトリックスアレイデータを保存するための広く標準化された形式はありません。 Matlabには *.matファイルがあり、numpyは *.npz、stata、sasには独自のものがあります...クリアテキストファイルを使用するのが最適です。
マトリックスが対称である場合、非常に大きい場合、またはそれらの多くが存在する場合は、下部(または上部)の三角形の部分のみを保存することで、空間要件を50%spareすることができます。そうすることを選択した場合、繰り返しますが、広く受け入れられている形式はありません。最初に形状を保存してから、平らな1Dデータを保存します。
他のヒント
一緒に行きます .csv 普遍的に受け入れられており、さまざまなプログラミング言語で簡単に読むことができます。さらに、Officeソフトウェアで単純に開くことができます。あなたがあなたのマトリックスをPythonでのみ使用している場合、私もお勧めします ピクルスライブラリ マトリックスをaに書き込みます .P 形式で、単純な負荷関数を使用してPythonで簡単に読み取ることができます。
として キャリッジリターン/ラインフィード(CR/LF) システムに応じて問題を引き起こす可能性があります。マトリックスを「インライン」またはに保存することをお勧めします ラスタースタイル コンベンションを指定するための短いヘッダー、バージョン番号(後で気が変わり、バージョンを増やすことができる)などを指定し、 少なくとも マトリックスサイズ、および残りはいくつかのテキスト形式(CSV、TSV)です。これは、で行われていることに似ています ポータブルグレーマップ またはビットマップ画像形式。
それを使用してテキストを保存しました フィルターバンク係数.
最小限の例は次のとおりです。2,3,0.1,1.2,2.3,3.4,4.5,5.6
$ 2 times 3 $ matrix: begin {array} 0.1&1.2&2.3 3.4&4.5&5.6 end {array} #2,#3,0.1,1.2,2.3,3.4,4.5,5.6
そのため、エイリアン(について考えてください ゴールデンパイオニアプラーク)最初の2つの整数が「異なる」ことを理解し、次の数値をどのように読み取るべきかについてのヒントを提供します。正方行列(対称行列の典型)を使用すると、ヘッダー番号が1つだけ必要なので、これはさらに興味深いものです。 #n
(側)と急性読者は、残りの数値が$ n^2 $数量であることを確認します。
他を見ることもできます マトリックスストレージスキーム, 、そしてあなたのマトリックスがまばらな場合、 圧縮行ストレージ(CRS).