我有一个.bed文件,其中包含1000行,每行中的单词由制表符(\ t)分隔。如果我们将每个单词视为一列,则每行有12列。
我需要一种将该.bed文件转换为矩阵的方法,以便可以轻松访问其列。
敌人的例子,我需要访问列号12。有什么办法可以做到?

我已经尝试过了:

    import numpy as np
    data = np.genfromtxt("myFile.bed")


但它不能正常工作。
有人可以帮我吗?

最佳答案

BED文件是标准的制表符分隔的文本文件。 Tu将其内容存储在内存中的常用方法是:

content = []
with open("myFile.bed")as f:
    for line in f:
        content.append(line.strip().split())


您可以在此处使用numpy数组而不是列表,或者根据需要使用np.asarray转换结果。

实际上很少需要矩阵,因为它们代表(基因组?)间隔并且通常很大。在大多数情况下,您需要在循环的每一行修改/读取/执行某些功能:

with open("myFile.bed")as f:
    for line in f:
        L = line.strip().split()
        # ... do something with L


否则,Pandas库将像R中那样实现“数据帧”(但我从未使用过)。

10-05 21:35