私は2次元マトリックスを保持するテキストファイルを持っています。次のようになります。テキストファイルに行列を転置する効率的な方法は何ですか?
01 02 03 04 05
06 07 08 09 10
11 12 13 14 15
16 17 18 19 20
ご覧のとおり、各行は改行で区切られ、各列はスペースで区切られています。私は効率的な方法で行列を転置する必要があります。
01 06 11 16
02 07 12 17
03 08 04 05
04 09 14 19
05 10 15 20
実際には、マトリックスは10,000×14,000である。個々の要素はdouble/floatです。不可能ではないにしても、このファイル/行列をすべてメモリ上で転置しようとすると、コストがかかります。
誰かがutil APIを知っていますか?
私が試したこと:私の素朴なアプローチは、(転置行列の)各列の一時ファイルを作成することでした。 10,000行では、私は10,000の一時ファイルを持っています。私は各行を読むとき、私は各値をトークン化し、対応するファイルに値を追加します。上の例では、私は次のようなものを持っています。
file-0: 01 06 11 16
file-1: 02 07 12 17
file-3: 03 08 13 18
file-4: 04 09 14 19
file-5: 05 10 15 20
次に、各ファイルを読み込んで1つのファイルに追加します。私はファイルを知っているので、よりスマートな方法があるのだろうか?/ o操作は苦労するでしょう。
これはギガバイト以上の唯一のタッチです;-) – EJP
プログラミングは最近、APIを探すように縮小されましたか?ありがとうございます。 – zvrba