numpy.loadtxt“无法将字符串转换为浮点”

2024-05-29 11:43:43 发布

您现在位置:Python中文网/ 问答频道 /正文

再现这一点的一个最起码的例子是:

import numpy
numpy.loadtxt("data.txt", delimiter='\t')

data.txt是:

    A   R   N   D   C   Q
A   5   -2  -1  -2  -1  -1
R   -2  7   -1  -2  -4  1
N   -1  -1  7   2   -2  0

运行代码时,我得到一个值错误:

[root@mycomp]$ python Needleman-Wunsch.py 
Traceback (most recent call last):
    File "Needleman-Wunsch.py", line 92, in <module>
        (alignedSeq1, alignedSeq2) = computeFMatrix(seq1, seq2, -6)
    File "Needleman-Wunsch.py", line 34, in computeFMatrix
        similarityMatrixMap = readBLOSUM50("BLOSUM50.txt")
    File "Needleman-Wunsch.py", line 16, in readBLOSUM50
        similarityMatrix = np.loadtxt(fileName, delimiter='\t')
    File "/usr/local/lib/python2.7/site-packages/numpy/lib/npyio.py", line 827, in loadtxt
        items = [conv(val) for (conv, val) in zip(converters, vals)]    
    ValueError: could not convert string to float: A  R  N  D  C  Q  E  G  H  I  L  K  M  F  P  S  T  W  Y  V

您还可以拥有the original ^{} file,完整代码来自the link above

删除BLOSUM50.txt的第一行也会产生同样的错误。


Tags: 代码inpynumpytxtdata错误line
2条回答

问题是您正在从文件中读取非数值。 需要指定要使用的列和要跳过的行:

similarityMatrix = np.loadtxt('blosum50.txt', skiprows=1, delimiter='\t', usecols=range(1,num_cols+1))

这对我来说和你之前发布的代码是一样的。:天

您只需将loadtxt替换为

numpy.genfromtxt("data.txt", delimiter='\t', skip_header=True)[:, 1:]

这将跳过标题,将列名转换为nan,然后将它们切掉。

相关问题 更多 >

    热门问题