写主成分分析程序时,遇到 ValueError: could not convert string to float: ‘105001 2512.6143 11857.8736’ 的问题
此时我的程序是这样的:
def loadDataSet(fileName, delim='\t'):
fr = open(fileName)
stringArr = [line.strip().split(delim) for line in fr.readlines()]
datArr = [list(map(float,line)) for line in stringArr]
return mat(datArr)
txt数据是这样的:
一般出现这种情况时,必然是出现了不可转换的符号。
后来,我改为:
def loadDataSet(fileName, delim='\t'):
fr = open(fileName)
stringArr = [line.strip().split() for line in fr.readlines()]
datArr = [list(map(float,line)) for line in stringArr]
return mat(datArr)
所作改动就是把 split(delim)换为split()
没错 是这样,程序正常运行了。
大概是因为原来只能删除占位符,而修改过后 没有参数的情况下,默认还可以删除其他符号!