如何从AnnData的.obs和.x中移除行(样本)?
从AnnData中移除指定行(基于obs条件)
要移除adata.obs中Region='reg012'的样本,操作逻辑和移除列类似,只是针对行维度(切片时的第一个索引位置)进行筛选:
方法一:分步筛选
先生成保留行的布尔索引,再进行切片:
# 生成布尔索引:标记出Region不等于'reg012'的样本 keep_rows = adata.obs['Region'] != 'reg012' # 用索引切片AnnData,同步更新obs、x等行相关数据 adata = adata[keep_rows, :]
方法二:一步完成
直接在切片时写入筛选条件:
adata = adata[adata.obs['Region'] != 'reg012', :]
以上操作会同步过滤AnnData中所有行维度的数据(包括obs数据表、x表达矩阵,以及obsm、obsp等行相关的附加数据),只保留符合条件的样本。
内容的提问来源于stack exchange,提问作者JMonk
相关产品推荐
相关产品推荐

