numpy.loadtxt"无法将字符串转换为浮点数"

Kar*_*ryo 3 python numpy alignment sequence

我正在检查这里的代码.

运行代码时,我得到:

import numpy
numpy.loadtxt("data.txt", delimiter='\t')
Run Code Online (Sandbox Code Playgroud)

重现这一点的最小例子是:

    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
Run Code Online (Sandbox Code Playgroud)

data.txt:

[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
Run Code Online (Sandbox Code Playgroud)

您也可以拥有原始BLOSUM50.txt文件,完整代码来自上面的链接.

擦除第一行BLOSUM50.txt给出了同样的错误.

Vee*_*rac 6

您只需更换loadtxt

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

这会跳过标题,将列名转换为nan然后将其删除.