2017-03-28 18 views
-2

私はKinectからxyz座標を抽出したtxtファイルを持っています。 xyz座標はコンマで区切られ、12個の列があります。 kinect 30フレームの前に行うすべての動きが1秒で追加されるので、約1200行あります。テキストファイルを読むPython Numpy

enter image description here

+1

あなたの疑問符はどこですか?特に問題はありますか? –

+0

私はデータを読んでxyz座標を抽出し、ユークリッド距離、角度などを計算しなければなりません。まず、ファイルを読む必要がありますが、私は理解できませんでした。私はファイルを読んで上記のようにデータを印刷することができますが、私はどのようにxyzを特定の列から得るか、そして計算する方法を知りません。 ありがとうございました –

答えて

1

は、あなたがそれをロードするために使用すべきかについてのあなたの疑問ですか?

もしそうなら、numpyに直接ロードするには、numpy.loadtxt(https://docs.scipy.org/doc/numpy/reference/generated/numpy.loadtxt.html)を使用できます。

もっと柔軟なデータへのアクセスと操作を可能にする構造が必要な場合は、pandas.read_table(http://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_table.html)を使用する必要があります。

操作後、簡単にパンダの構造をnumpyに変換できます。

+0

ありがとうございました –

0

これは、ファイルの各行を読み取り、そのデータを処理する方法のサンプルです。

このコードは以下となります。

  1. openファイル
  2. readライン
  3. splitスペースで各ライン
  4. print各行
  5. for後に来た各要素から数に関する情報最初の分割、split再び012に

コード:

#create empty list to store results 
rows = [] 

#open file 
with open('filename.txt', 'r') as f: 
    #read each line of file and store it in rows list 
    rows = f.readlines() 

#for each element in my list, do something 
for row in rows: 

    #split row in each space, so each column will become an element item and attribute it to data 
    data = row.split() 

    #print all data content 
    print(data) 

    #print only third element in data list 
    print(data[3]) 

    #split column content at , 
    print(data[3].split(',') 

今、あなたは、各列内のすべての項目にアクセスすることができます。あなたはちょうどあなたのデータを少し再生し、それに適切にアクセスする方法を理解する必要があります。

しかし、his answerでFilipe Aleixoが提供するツールを使用することを検討してください。これにより、データをよりうまく操作できるようになります。

+0

ありがとうございました –

+0

ようこそ!ちょっとしたヒント:次の質問をする前に、この投稿:[How to Ask](https://stackoverflow.com/help/how-to-ask)を読んでください。 –

+0

私は、初めてのごめんなさい。 –

関連する問題