파일이 나타내는 3D 텐서를 전치합니다.

파일이 나타내는 3D 텐서를 전치합니다.

MxNxD차원 데이터 개체의 3D 텐서가 있습니다 . 그리고 이 데이터 개체는 분할되어 다른 파일에 저장됩니다.

처음에는 MxN각 차원(처음 두 차원)에 대한 조각/행렬이 별도의 파일에 저장됩니다. 각 행에는 행렬의 행이 포함됩니다. 행의 요소는 공백으로 구분됩니다. 그래서 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

관련 정보