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的行是增加的,但列是减少的,这个需要特别注意

相关推荐
wdfk_prog7 分钟前
[Linux]学习笔记系列 -- [drivers][clk]clk-bulk
linux·笔记·学习
四谎真好看25 分钟前
JavaWeb学习笔记(Day10)
笔记·学习·学习笔记·javaweb
该学习了咕咕25 分钟前
单纯实验记录(寿命实验)
学习·学习方法·秀丽线虫·寿命实验
ooo-p31 分钟前
FPGA学习篇——Verilog学习之“有限状态机FSM”
学习·fpga开发
A_nanda38 分钟前
vue快速学习框架
前端·javascript·vue.js·学习·c#
WTCLLB43 分钟前
取消文件隐藏属性,找到winre.wim和boot.sdi
windows·学习
其美杰布-富贵-李1 小时前
门控模型与Mixture of Experts (MOE) 学习笔记
笔记·学习·moe·门控神经网络
求真求知的糖葫芦1 小时前
RF and Microwave Coupled-Line Circuits射频微波耦合线电路4.3 均匀非对称耦合线学习笔记(上)(自用)
笔记·学习·射频工程
ajole1 小时前
C++学习笔记——C++11
数据结构·c++·笔记·学习·算法·stl
晚霞的不甘1 小时前
Flutter for OpenHarmony《智慧字典》中的沉浸式学习:成语测试与填空练习等功能详解
学习·flutter·ui·信息可视化·前端框架·鸿蒙