我有一个.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中那样实现“数据帧”(但我从未使用过)。