首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AttributeError:'numpy.ndarray‘对象没有属性’拆分‘

AttributeError:'numpy.ndarray‘对象没有属性’拆分‘
EN

Stack Overflow用户
提问于 2016-10-12 21:52:26
回答 1查看 29.6K关注 0票数 0

我试图回答以下问题:“一位同事在每一行上生成了一个带有一个DNA序列的文件。下载该文件并使用numpy.loadtxt()加载到Python中。您需要使用可选的参数dtype=str告诉loadtxt()数据是由字符串组成的。

计算每个序列的GC含量。GC含量是指G或C(占总碱基对的百分比)的碱基百分比。将每个序列的结果打印为“序列的GC内容为XX.XX%”,其中XX.XX是实际的GC内容。使用“格式化字符串”执行此操作。“

导入dna序列文件并将它们连接在一起后,我现在想将字符串拆分为5个序列(对应于5行),然后开始计算。

注:这是文件来源:1.txt

这是我的密码:

代码语言:javascript
复制
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’

救命啊!

EN

回答 1

Stack Overflow用户

发布于 2016-10-21 17:10:40

正如注释中所述:",".join(dna_data)不修改dna_data,它只返回一个字符串,您必须将该字符串存储在另一个变量中。就像这样:

代码语言:javascript
复制
s = ",".join(dna_data)
seq1,seq2,seq3,seq4,seq5=s.split(",",4)

更进一步:

(请注意,对于numpy,您似乎还不熟悉:在下面的文章中,我假设dna_data有一个形状(5,),如果不是这样的话,您可以使用 slicing返回到那个形状)

尽管如此,使用该代码,您只需将数组转换为一个列表,然后放入5个不同的变量,因此,当您只需将数组->变量放在一个简单的行中时-->string-> list ->变量就是->

我还会更进一步:不要做任何事情!如果您只需要使用dna_data[n]而不是任何seq*变量,那么拥有多个变量又有什么意义呢?前者更方便,并且可以无痛地做一些事情,例如用for-循环循环遍历所有序列。例:

代码语言:javascript
复制
for seq in dna_data: 
    print(seq)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40008985

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档