2016-06-27 7 views
3

親愛なるフォーラムすべての要素がnx1配列である注釈リストを使用して患者データリストを索引付けする必要があります。配列を含む別のリストを使用したリストの索引付け

患者リスト: 10人の患者、20のフィーチャ、300のデータポイント(リストの各要素は300×20アレイである) 注釈リスト:

  • 私は
  • 注釈付きデータIが欲しい
  • の特徴たい患者を:10人の患者、300の注釈

    目的は、値がで選択された患者値でリストを作成することです

    :私は患者や機能(F1、F2、F3)を選択するために管理し、この偉大なフォーラムの助けを借りて

をしたいです

F1=5;F2=13;F3=74  
selected_babies =[0,1,2] 
Xfeat=[val[:,(F1,F2,F3)] for sb, val in enumerate(Patient_Matrix) if sb in selected_babies] #selecting top three fearues F1 F2 F3 datapoints 

次に、私が望むアノテーションに対応するインデックスを持つリストを作成します。この場合、1と2

label=array([1,2]) 
idx=[in1d(Annottions[sb],label) for sb in selected_babies] 
idx=[nonzero(idx[sb])[0] for sb in selected_babies] # get the indices where True 

としては、各要素が欲しいデータのインデックスを示すn値のアレイであるIDXは、今や(selected_babiesによる)3つの要素を持つリストであり、前記しました使用する。 このリストを使用して、作成したXfeatから自分のデータを選択します。 これまでは、フィーチャF1、F2、F3のすべての値が含まれていました。私は選択された赤ちゃんのF1、F2、F3の注釈付きの値1と2だけを必要とします。

私が試した:

Xfeat=[val[idx[sb],:] for sb, val in enumerate(Patient_Matrix) if sb in selected_babies] #selecting the datapoints in label 

をしかし、それは動作しません。 IndexError:インデックス0は、サイズ0の軸0の範囲外です。

これを正しく行う方法を知っている人はいますか?

ご協力いただきありがとうございます。

答えて

1

私はこれで動作するようです:

Xfeat=[val[idx[sb],:] for sb, val in enumerate(Xfeat) if sb in selected_babies] 

私はまだはIndexErrorを得るが、唯一の特定の患者のため。私はそこで何が起こるか把握しなければならない。 私は誰かを助けることができますように願っています。

乾杯

関連する問題