从numpy中提取行并将行添加到特定索引

从numpy中提取行并将行添加到特定索引,numpy,bioinformatics,Numpy,Bioinformatics,我有一个非常大的3D阵列(1103546X2504X3)。这些是从VCF文件导入的基因型数据。首先我想用我的数据过滤它。之后,我想提取所需的行,并添加缺少的1-s,但已排序。现在我的代码是: chr_pos是我的“reference”文件中的位置,pos是大数组中的索引位置,需要对我需要的行进行索引 needed_index = [] for i in range(len(chr_pos)): for k in range(len(pos)): if chr_pos[i]

我有一个非常大的3D阵列(1103546X2504X3)。这些是从VCF文件导入的基因型数据。首先我想用我的数据过滤它。之后,我想提取所需的行,并添加缺少的1-s,但已排序。现在我的代码是: chr_pos是我的“reference”文件中的位置,pos是大数组中的索引位置,需要对我需要的行进行索引

needed_index = []
for i in range(len(chr_pos)):
    for k in range(len(pos)):
        if chr_pos[i] == k:
            needed_index.append(k) 
提取后,我检查引用中是否缺少任何行:

list_difference = [item for item in chr_pos if item not in needed_pos]
使用相同的代码创建了needed_pos,但使用了.append(pos[k])

我的问题是: 如何根据所需列表索引或所需位置提取特定数组行? 如何将缺少的项添加到数组中?它将采用Indexx2504x[0,0]的格式,其中索引来自list_difference,2504是列(样本编号),[0,0]是我要添加的每个位置的值


Edit1:所以基本上我想在数组中找到我需要的行(从一个引用文件),如果一些位置不在主数组中,用2504列和[0,0]将它们添加到特定位置值作为第三维

您可以使用
np。取
并指定选择值的
轴。要解决第一个问题,您要从中选择的数组是否具有大小
(11035462504,3)
你想从一维索引列表中选择元素吗?没错。我知道我需要哪一行,所以基本上我只需要大数组的子集(165002504,3).509行缺失,这是我想要添加到其中的行。因此,您有
509
索引?并且您正在向每个索引添加项目?基本上,在这个主数组中,我找到了15895行我需要的行(第一个代码在文章中),有509个我需要的,但不在主数组中。我想从主数组中提取找到的,然后添加缺少的509个,然后根据第0维排序(这是变异的位置和遗传位置)。