python - 用另一个包含数组的列表索引一个列表

标签 python arrays list indexing

亲爱的论坛我想用注释列表索引患者数据列表,其中每个元素都是一个 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 的所有值。我只想要 selected_ 婴儿的 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 的范围。

有谁知道如何正确执行此操作?

非常感谢您的提前帮助。

最佳答案

我似乎在用这个:

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

我仍然得到 indexError,但仅限于某个患者。我将不得不弄清楚那里发生了什么。 希望我能帮助别人。

干杯

关于python - 用另一个包含数组的列表索引一个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38054392/

相关文章:

python - Plotly:如何给y轴的不同区间添加注解?

python 正则表达式。带有 unicode 字符

javascript - [].slice 与 Array.prototype.slice

python - 我如何映射到字典而不是列表?

javascript - 如何在 javascript 中将项目转换为键/值对对象?

python - 无法使用 firebase 云消息传递、Python API 发送通知

Python 在 Anaconda 下找不到 Tensorflow 模块

java - 根据另一个字符串数组的值从一个数组中仅提取某些对象

arrays - 如何在嵌套的 JSON 值上使用 SwiftyJSON

python - 在 python 中进行列表理解时扩展列表