MxNxD
次元データオブジェクトの3Dテンソルがあります。そして、このデータオブジェクトは分割され、他のファイルに保存されます。
最初は、MxN
各次元(最初の2次元)の断片/行列が別々のファイルに保存されます。各行には行列の行が含まれます。行の要素はスペースで区切られます。だから、D
そのようなファイルがすべてあります。
最後の2次元が同じファイルになるように3Dテンソルを転置したいと思います。たとえば、M
各ファイルにスライスを含めたいとしますNxD
。
はい
ファイル0:
000 010 020 030
100 110 120 130
200 210 220 230
ファイル1:
001 011 021 031
101 111 121 131
201 211 221 231
に移動しなければならない
出力1:
000 010 020 030
001 011 021 031
出力2:
100 110 120 130
101 111 121 131
出力3:
200 210 220 230
201 211 221 231
私の質問は次のとおりです
- シェルスクリプトまたはPythonでこれを効率的に実行する方法
- これを行うための効率的なファイル形式はありますか?
答え1
解決策は次のとおりです。TxR不明な言葉:
(let* ((data [mapcar file-get-lines (glob "file*")]))
(mapdo (op file-put-lines `out@2` @1) (transpose data) (range 1)))
ランニング:
$ ls
file0 file1 trans.tl
$ txr trans.tl
$ ls
file0 file1 out1 out2 out3 trans.tl
$ cat out1
000 010 020 030
001 011 021 031
$ cat out2
100 110 120 130
101 111 121 131
$ cat out3
200 210 220 230
201 211 221 231