こんにちは
txtファイルの数値を[3,6,n]の配列に格納したいのですがやり方がわからず困っています。助けていただけると幸いです。
txtファイルは行ごとに
[番号(1)][秒数] [x1_1] [y1_1] [z1_1] [x2_1] [y2_1] [z2_1]...[x6_1] [y6_1] [z6_1]
[番号(2)][秒数] [x1_2] [y1_2] [z1_2] [x2_2] [y2_2] [z2_2]...[x6_2] [y6_2] [z6_2]
...
というように各秒ごとのxyz軸の座標データを出力したものです。
これを以下のように[3,6,n]の配列に格納したいと思っています。
[ [ [x1_1, x1_2, ..., x1_n], [x2_1, x2_2, ..., x2_n], ... [x6_1, x6_2, ..., x6_n] ], [ [y1_1, y1_2, ..., y1_n], [y2_1, y2_2, ..., y2_n], ... [y6_1, y6_2, ..., y6_n] ], [ [z1_1, z1_2, ..., z1_n], [z2_1, z2_2, ..., z2_n], ... [z6_1, z6_2, ..., z6_n] ] ]
txtファイルの内容は以下です。実際は番号2000まであります。
1 0.000 445.00369 220.76532 1758.71790 403.69342 -198.27150 1426.80151 460.71683 -105.58707 1253.80420 519.70166 -107.22513 1143.01050 447.61652 -28.50393 982.86810 530.89508 48.23055 939.79755 2 0.005 445.20322 220.66788 1759.12476 403.69342 -198.27150 1426.80151 460.62009 -105.79584 1253.64514 519.70166 -107.22513 1143.01050 447.35663 -28.66521 983.15955 530.94617 48.26031 939.86365 3 0.010 444.78091 221.03682 1758.80908 403.69342 -198.27150 1426.80151 460.81293 -105.71410 1253.70520 519.90900 -107.11345 1143.12146 447.61069 -28.64266 983.06464 531.08563 48.16837 939.95715
何か教えていただけると幸いです。よろしくお願いします。
追記
とっかかりがつかめていないので現在のコードというのもほとんどできていないのですが,一応with openでファイルを開き,行ごとに取得したデータを1つずつ分離して配列に格納するという方法を考えていました.
以前に似たような内容で質問した際に教えていただいたコードを使えると思い,いじってはいるのですが正直あまり進んでいません.すいません.
Python
1def make_1D(data_1D): 2 return [float(s) for s in data_1D.split()][2:] 3def make_2D(data_2D): 4 return [make_1D(s) for s in data_2D] 5 6with open('Marker_200Hz.txt') as f: 7 data = f.readlines() 8 marker_list_3D = [] 9 10for i in range(len(data)): 11 marker_list_3D.append(np.array(make_2D(data[i]))) 12
回答3件
あなたの回答
tips
プレビュー