ファイルが表す 3D テンソルを転置します。

ファイルが表す 3D テンソルを転置します。

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

関連情報