我已经看到了这个问题的几个答案,主要建议我用np.genfromtxt()替换np.loadtxt ....但这会产生不同的问题。
有问题的一行是:
imported_array = np.loadtxt(fname, delimiter='\t', skiprows = 1)
该文件本身声称是.xls但我发现它确实是制表符分隔的文本文件。此代码通常适用于此系统生成的文件。数据看起来像
Time Flow Rate Pressure
0.002 273.4474545 3.542497271
等等。我得到的错误是
items = [conv(val) for (conv, val) in zip(converters, vals)]
ValueError: could not convert string to float:
它声称的字符串是一个奇怪的字符......它可能是一个资本伽玛。哪个我在数据文件中找不到。第一行下面的所有内容都是数字,绝对不是大写伽玛。我试着在文件中搜索看起来像它的特殊字符,但无济于事。
当我尝试使用np.genfromtxt:
时imported_array = np.genfromtxt(fname, delimiter='\t', skiprows = 1)
raise ValueError(errmsg)
ValueError: Some errors were detected !
Line #3 (got 4 columns instead of 1)
Line #7 (got 4 columns instead of 1)
Line #9 (got 2 columns instead of 1)
Line #59 (got 14 columns instead of 1)
Line #61 (got 2 columns instead of 1)
Line #70 (got 2 columns instead of 1)
Line #71 (got 4 columns instead of 1)
与此同时,在同一系统生成的先前数据集中,我要么没有遇到这个问题,要么就有20个有这个问题。
答案 0 :(得分:0)
我从here发现,我的问题很可能与这样一个事实有关,即尽管这些文件是NAMED .xls,但它们并不是.xls文件。我正在指定分隔符,这是分隔符。我不确定为什么它有时会起作用,而不是其他人。但是,当我将该行改为:
imported_array = np.genfromtxt(fname, skiprows = 1, dtype = float)
(删除分隔符规范),它有效。
它也用作具有相同参数的np.loadtxt。指定分隔符让我搞砸了,这对我来说真的很奇怪。