Python 在genfromtxt中解压缩的值太多
我有一个包含振动数据的tsv文件(出于某些愚蠢的原因,用逗号代替点,因此转换器)。我想从其中两个通道生成numpy数组,但得到了一个我无法理解的“ValueError:太多的值需要解包(预期为2)” 在ipython中(带pylab选项): [171]中的Python 在genfromtxt中解压缩的值太多,python,numpy,genfromtxt,Python,Numpy,Genfromtxt,我有一个包含振动数据的tsv文件(出于某些愚蠢的原因,用逗号代替点,因此转换器)。我想从其中两个通道生成numpy数组,但得到了一个我无法理解的“ValueError:太多的值需要解包(预期为2)” 在ipython中(带pylab选项): [171]中的导入re 在[172]中:定义qdsub: …:返回re.sub(“\,”,“.”,str(s)[2:-1]) .....: 在[173]中,x,y=genfromtxt('QD1_short.tsv',分隔符='\t',usecols=(0,
导入re
在[172]中:定义qdsub:
…:返回re.sub(“\,”,“.”,str(s)[2:-1])
.....:
在[173]中,x,y=genfromtxt('QD1_short.tsv',分隔符='\t',usecols=(0,1),
..:unpack=True,skip_header=13,converters={0:qdsub,1:qdsub},
…:跳过(页脚=2,数据类型=float)
---------------------------------------------------------------------------
ValueError回溯(最近一次调用上次)
在()
1 x,y=genfromtxt('QD1_short.tsv',分隔符='\t',usecols=(0,1),
2 unpack=True,skip_header=13,converters={0:qdsub,1:qdsub},
---->3跳过(页脚=2,数据类型=float)
ValueError:要解压缩的值太多(应为2个)
也许这就是问题所在:
x, y = ge...
试一试
例如:
>>> a, b = [1,2,3,4]
Traceback (most recent call last):
File "<pyshell#14>", line 1, in <module>
a, b = [1,2,3,4]
ValueError: too many values to unpack
a,b=[1,2,3,4]
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
a、 b=[1,2,3,4]
ValueError:要解压缩的值太多
也许这就是问题所在:
x, y = ge...
试一试
例如:
>>> a, b = [1,2,3,4]
Traceback (most recent call last):
File "<pyshell#14>", line 1, in <module>
a, b = [1,2,3,4]
ValueError: too many values to unpack
a,b=[1,2,3,4]
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
a、 b=[1,2,3,4]
ValueError:要解压缩的值太多
的numpy.genfromtxt
说明:
解包:bool,可选
If True, the returned array is transposed, so that arguments may be unpacked
using x, y, z = loadtxt(...)
我的最佳猜测是您应该尝试将genfromtxt
封装在loadtxt
中:
from numpy import loadtxt, genfromtxt
(...)
x, y = loadtxt(genfromtxt('QD1_short.tsv', delimiter='\t', usecols=(0, 1),
unpack=True, skip_header=13, converters={0:qdsub, 1:qdsub},
skip_footer=2, dtype=float))
numpy.genfromtxt的
解包:bool,可选
If True, the returned array is transposed, so that arguments may be unpacked
using x, y, z = loadtxt(...)
我的最佳猜测是您应该尝试将genfromtxt
封装在loadtxt
中:
from numpy import loadtxt, genfromtxt
(...)
x, y = loadtxt(genfromtxt('QD1_short.tsv', delimiter='\t', usecols=(0, 1),
unpack=True, skip_header=13, converters={0:qdsub, 1:qdsub},
skip_footer=2, dtype=float))
问题出在转换器上,它显然应该返回一个浮点数
def qdsub(s):
return float(re.sub('\,', '.', str(s)[2:-1]))
问题出在转换器上,它显然应该返回一个浮点数
def qdsub(s):
return float(re.sub('\,', '.', str(s)[2:-1]))
嗯,v=genfromtxt(…
肯定会返回一些东西,没有错误,问题是它是一个似乎无用的数组([(“”),(“”),(“”),(“”),(“”),(“”),,,,…,
只使用一列,我得到一个整洁的浮点数组,我想得到其中两个。我以前用x,y=loadtxt做过(…但是这个tsv的页脚意味着我不能走这条路线,问题出在转换器上。将它修改为返回re.sub('\','','','',str(s)[2:-1])
现在它工作得非常好。但奇怪的是,以前它在单列上是可以的。哦,好吧。v=genfromtxt(…
当然会返回一些东西,没有错误,问题是它是一个看起来毫无用处的数组([(“”),(“”,),(“”,),(“”,),…,
只使用一列,我得到一个整洁的浮点数组,我想得到其中两个。我以前用x,y=loadtxt做过这件事(…但是这个tsv的页脚意味着我不能走那条路线,问题出在转换器中。将其修改为return re.sub('\,','.',str(s)[2:-1])
现在一切都很好。但奇怪的是,以前在单列上还可以。哦,好吧……显然我还不能回答我自己的问题,但问题已经解决了,请参阅用户答案评论显然我还不能回答我自己的问题,但问题已经解决了,请参阅用户答案评论