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

相关推荐
dengqingrui1232 小时前
【树形DP】AT_dp_p Independent Set 题解
c++·学习·算法·深度优先·图论·dp
ZZZ_O^O2 小时前
二分查找算法——寻找旋转排序数组中的最小值&点名
数据结构·c++·学习·算法·二叉树
slomay4 小时前
关于对比学习(简单整理
经验分享·深度学习·学习·机器学习
hengzhepa4 小时前
ElasticSearch备考 -- Async search
大数据·学习·elasticsearch·搜索引擎·es
小小洋洋6 小时前
BLE MESH学习1-基于沁恒CH582学习
学习
Ace'7 小时前
每日一题&&学习笔记
笔记·学习
IM_DALLA7 小时前
【Verilog学习日常】—牛客网刷题—Verilog进阶挑战—VL25
学习·fpga开发·verilog学习
丶Darling.7 小时前
LeetCode Hot100 | Day1 | 二叉树:二叉树的直径
数据结构·c++·学习·算法·leetcode·二叉树
z樾9 小时前
Github界面学习
学习