我今天發現一個很有意思的問題哈
import scanpy as sc
import numpy as npX = np.random.randn(10,3)
adata1 = sc.AnnData(X)
adata1.obs["sample"] ="H1"
print(adata1)X = np.random.randn(20,3)
adata2 = sc.AnnData(X)
adata2.obs["sample"] ="G2"
print(adata2)X = np.random.randn(20,3)
adata3= sc.AnnData(X)
adata3.obs["sample"] ="AA"
print(adata3)X = np.random.randn(30,3)
adata4= sc.AnnData(X)
adata4.obs["sample"] ="11"
print(adata4)ad = sc.AnnData.concatenate(*[adata1,adata2,adata3,adata4])
print(ad)
結果如下
我將4個adata進行合并,然后我想對這個結果進行重新split,然后要保證原來的順序
如果使用value_counts()
可以看到這個結果是不對的,這個排序是根據每個category出現的頻率排序的,正確的做法是使用unique()