我需要根据数组B的一列对数组A列进行排序,但顺序是由字符串给出的:我希望数组A列的顺序与数组B的第二列一样(B[:,1]
)
阵列A
family id mum dad rs1 rs2 rs3 rs4 rs5 rs6 rs7 rs8 rs9 rs10 rs11 rs12
1 1 4 6 A T A A T T C C G G A T A G A A G A T A G G C C
2 2 7 9 T A G A C T C T G A T T A A A C G G T A C C C T
3 3 2 8 T T G G C T C T G G A T A G A C G G T T C C C C
4 4 5 1 A A A A T T C C G A T T A A A A G A T A G C C T
阵列B
1 rs1 2345
1 rs5 2346
2 rs6 2348
4 rs8 2351
4 rs12 2360
3 rs2 2456
2 rs3 2453
3 rs10 5672
1 rs9 78923
5 rs7 5738
2 rs4 3546
6 rs11 6354
期望输出:
family id mum dad rs1 rs5 rs6 rs8 rs12 rs2 rs3 rs10 rs9 rs7 rs4 rs11
1 1 4 6 A T G G A T A A C C A A T T T A G A A G C C G G
2 2 7 9 T A G A T T A C C T G A C T T A G G A A C T C C
3 3 2 8 T T G G A T A C C C G G C T T T G G A G C T C C
4 4 5 1 A A G A T T A A C T A A T T T A G A A A C C G C
我希望这足够清楚!谢谢您!你知道吗
正如评论中所指出的,这基本上是这个问题的重复: Combine two columns under one header in Numpy array
所以这个答案基本上是从这里剪切粘贴的,只是我使用制表符作为分隔符,因为我知道这就是你所使用的。你知道吗
首先,我们从使用StringIO生成样本数据的数组开始。你知道吗
然后我们从B数组中得到第1列,与前面的问题相同:
在这一点上,正如前面问题中所解释的,您可以使用
A[B]
获得按B
排序的rs
列。或者如果您需要所有列:如果您希望将其打印为更接近于表示示例输出的内容(以制表符分隔的列),可以执行以下操作:
我对numpy没有太多经验,所以可能有更简单的方法直接用numpy格式化输出,但这至少是一种可能的解决方案。你知道吗
相关问题 更多 >
编程相关推荐