嗨,我是编程和python编程新手。
我用numpy.getfromtxt
导入了一个制表符分隔的txt文件,它看起来像
[['chr' 'start' 'end' 'name' 'score' 'strand']
['chr1' '822979' '822980' 'CLL6.08_1_snv' '88.2' '+']
...,
['chrX' '153986959' '153986960' 'CLL6.08_2678_snv' '500' '+']]
我想把这些数据分成不同染色体的子数组
^{pr2}$我正在尝试类似的方法,但是遇到语法错误。我试图这样做,因为我想提取每一个染色体数据时,有条件。在
import numpy as np
data=np.genfromtxt("CLL608.txt",delimiter ="\t",dtype=None,skip_header=0)
subarray=(['Chr1':data[data[:,0]=='chr1'], 'Chr2':data[data[:,0]=='chr2']])
我真的很感激在这方面的任何建议。在
不能在列表[]中建立关联必须使用词典{}
创建一个
dict
-ianary,它接受一个字符串(或任何散列对象)并返回任意值。使用它可以将“chr”名称映射到仅包含这些记录的子数组:您可以通过了解Python中“我希望我的字典有新键的默认值”问题经常出现并且有一些标准的解决方案来加快速度:
^{pr2}$list()
创建一个新的空列表。空列表或以前存在的列表都附加了record
。在最后,通过认识到遍历一个列表并对其只做一件事是对
map
函数的一个很好的使用,您可以更快地实现这一点。尽管通常情况下,您使用的结果都是使用map。在最后,如果您的数据恰好在键值上被排序,那么您可以使用^{} 函数,如果数据已经排序,它将为您处理分组逻辑。我提到最后两个(
map
和groupby
),因为我怀疑您的数据集可能很大,性能可能是一个问题。在相关问题 更多 >
编程相关推荐