3
亲爱的论坛我想索引患者数据列表,其中每个元素都是nx1数组。用包含数组的另一个列表索引列表
患者列表:例如10名患者,20个特征,300个数据点(列表中的每个元素是300x20阵列) 注释列表:例如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
如所述,IDX现与3个元素(由于selected_babies),其中每个元素是n个值的阵列的列表,其指示我想要的数据的索引使用。 现在我想使用此列表从创建的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的界限。
有没有人知道如何做到这一点是正确的?
非常感谢您的帮助。