繁体   English   中英

在python中从tsv构造矩阵

[英]Construct matrix from tsv in python

我有一个 .tsv 文件,看起来像这样:

A               B               C
SRX479927.bed   SRX821810.bed   0.258912
SRX032890.bed   SRX821809.bed   0.161135
SRX660083.bed   SRX821816.bed   0.00379202
SRX821817.bed   SRX821818.bed   0.0902696
SRX660084.bed   SRX479928.bed   0.2671
SRX821806.bed   SRX821811.bed   0.458604
SRX476926.bed   SRX821806.bed   0.0303042
SRX196107.bed   SRX414970.bed   0.221135

其中 A 和 B 是文件,C 是这些文件相似度的索引。 我试图在python中构造一个矩阵,A在y轴上,B在x轴上,填充相应的值。 我之前为 .tsv 文件做过 2 列(文件和值),但无法成功使用 3 列。 任何人都可以提供有关如何解决此问题的方法吗? 如果之前有人问过这个问题,我很抱歉,但我只能找到有关如何从 2 列构造矩阵的问题。

您可以将其作为数据框加载,然后将AB设置为索引,进行相应排序,然后取消堆叠索引:

matrix = df.set_index(['A', 'B'])['C'].sort_index().unstack()

如果您的数据不包含相似文件的相似度分数(即,将文件与其自身进行比较),您可以手动添加它们。 如果分数是对称的并且只存在矩阵的上三角形,则可以使用numpy.triu_indices来构建矩阵。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM