ad.concat()学习

学习1

复制代码
import anndata as ad, pandas as pd, numpy as np
from scipy import sparse
a = ad.AnnData(
     X=sparse.csr_matrix(np.array([[0, 1], [2, 3]])),
     obs=pd.DataFrame({"group": ["a", "b"]}, index=["s1", "s2"]),
     var=pd.DataFrame(index=["var1", "var2"]),
     varm={
         "ones": np.ones((2, 5)),
         "rand": np.random.randn(2, 3),
         "zeros": np.zeros((2, 5)),
     },
     uns={"a": 1, "b": 2, "c": {"c.a": 3, "c.b": 4}},
 )
b = ad.AnnData(
     X=sparse.csr_matrix(np.array([[4, 5, 6], [7, 8, 9]])),
     obs=pd.DataFrame(
         {"group": ["b", "c"], "measure": [1.2, 4.3]}, index=["s3", "s4"]
     ),
     var=pd.DataFrame(index=["var1", "var2", "var3"]),
     varm={"ones": np.ones((3, 5)), "rand": np.random.randn(3, 5)},
     uns={"a": 1, "b": 3, "c": {"c.b": 4}},
 )
c = ad.AnnData(
     X=sparse.csr_matrix(np.array([[10, 11], [12, 13]])),
     obs=pd.DataFrame({"group": ["a", "b"]}, index=["s1", "s2"]),
     var=pd.DataFrame(index=["var3", "var4"]),
     uns={"a": 1, "b": 4, "c": {"c.a": 3, "c.b": 4, "c.c": 5}},
 )

可以看到,label=batch 只是添加的列名,而不是按照这列合并,而keys的值仅仅是一个标识值,没有特殊含义,我可以用整数区分,我也可以用唯一的字符串区分,如病人名

复制代码
adata_concat = ad.concat(Batch_list, label="slice_name", keys=section_ids)

学习2

复制代码
import anndata as ad, pandas as pd, numpy as np
from scipy import sparse
a = ad.AnnData(
     X=sparse.csr_matrix(np.array([[0, 1], [2, 3]])),
     obs=pd.DataFrame({"group": ["a", "b"]}, index=["s1", "s2"]),
     var=pd.DataFrame(index=["var1", "var2"]),
     varm={
         "ones": np.ones((2, 5)),
         "rand": np.random.randn(2, 3),
         "zeros": np.zeros((2, 5)),
     },
     uns={"a": 1, "b": 2, "c": {"c.a": 3, "c.b": 4}},
 )
b = ad.AnnData(
     X=sparse.csr_matrix(np.array([[4, 5, 6], [7, 8, 9]])),
     obs=pd.DataFrame(
         {"group": ["b", "c"], "measure": [1.2, 4.3]}, index=["s3", "s4"]
     ),
     var=pd.DataFrame(index=["var1", "var2", "var3"]),
     varm={"ones": np.ones((3, 5)), "rand": np.random.randn(3, 5)},
     uns={"a": 1, "b": 3, "c": {"c.b": 4}},
 )
c = ad.AnnData(
     X=sparse.csr_matrix(np.array([[10, 11], [12, 13]])),
     obs=pd.DataFrame({"group": ["a", "b"]}, index=["s1", "s2"]),
     var=pd.DataFrame(index=["var3", "var4"]),
     uns={"a": 1, "b": 4, "c": {"c.a": 3, "c.b": 4, "c.c": 5}},
 )

print(a)
print(b)
print(a.X.toarray())
print(b.X.toarray())

注意这里的ad.concat, 这里的拼接是默认对var取交集的,但是对adata是去并集,也就是说adata的行是增加的,但列是减少的,这个需要特别注意

相关推荐
通信小呆呆16 天前
当算法有了“五感”:多模态数据融合如何向人体感官协同学习?
人工智能·学习·算法·机器学习·机器人
H__Rick16 天前
自动对焦学习-3
人工智能·学习·计算机视觉
Daisy Lee16 天前
量化学习-第1章-什么是量化金融
学习·金融·datawhale
Alsn8616 天前
等待学习-学习目录:Docker 容器安全攻防
学习·安全·docker
YM52e16 天前
买菜计算器小应用 - HarmonyOS ArkUI 开发实战-PC版本
学习·华为·harmonyos·鸿蒙·鸿蒙系统
小雨下雨的雨16 天前
HarmonyOS ArkUI训练营入门-组件掌握系列-Animation 动画效果实现-PC版本
学习·华为·harmonyos·鸿蒙
cqbzcsq16 天前
CellFlow虚拟细胞论文阅读
论文阅读·人工智能·笔记·学习·生物信息
YangYang9YangYan16 天前
2026初入职场学习数据分析的价值
学习·数据挖掘·数据分析
guslegend16 天前
理论学习:什么是 Coding Agent?
学习
自传.16 天前
尚硅谷 Vibe Coding|第三章(1) Claude Code深度使用与进阶技巧 学习笔记
笔记·学习·尚硅谷·vibecoding