我想回答下列问题 “一位同事制作了一份文件,每行有一个DNA序列。下载文件并使用numpy.loadtxt()将其加载到Python中。您需要使用可选参数dtype=str来告诉loadtxt()数据是由字符串组成的。
计算每个序列的GC含量。GC含量是G或C碱基的百分比(占总碱基对的百分比)。将每个序列的结果打印为“序列的GC含量为XX.XX%”,其中XX.XX是实际GC含量。使用“格式化字符串”执行此操作
导入dna序列文件并将它们连接在一起后,我现在想将字符串拆分为5个序列(对应于5行中的每一行),然后开始计算。。。
这是我的代码:
import numpy
dna_data=numpy.loadtxt("dna_sequences",dtype=str)
",".join(dna_data)
seq1,seq2,seq3,seq4,seq5=dna_data.split(",",4)
我收到以下错误消息: AttributeError:“numpy.ndarray”对象没有“split”属性
请帮忙!!!
正如注释中所说:
",".join(dna_data)
不修改dna_data
,它只返回一个字符串,您必须将其存储在其他变量中。像这样:更进一步:
(注意,您似乎对numpy还不熟悉:在下面的示例中,我假设
dna_data
有一个形状(5,)
如果不是这样,您可以使用very basic slicing返回到该形状)也就是说,使用该代码,您只需将数组转换为一个列表,然后放入5个不同的变量,因此,当您可以只在一行
seq1,seq2,seq3,seq4,seq5 = dna_data
中放入数组->;string->;list->;变量时,非常多。我会更进一步:不要这样做!当您只需要使用
dna_data[n]
而不是任何seq*
变量时,拥有多个变量有什么意义?前者更方便,并且允许无痛苦地做一些事情,比如用for循环遍历所有序列。例如:相关问题 更多 >
编程相关推荐