我不明白为什么 numpy.genfromtext 允许您仅指定全部或不指定任何 dtypes。我试图让它为大多数领域做明显的(默认)事情,但要指定一些我认为它会遇到困难的事情。一般来说,我不知道我的数据文件中的完整字段列表。
有没有比两次加载文件更好的方法,如下所示?
dtypeoverrides={'textfield':'a20','anotherTrickyfield':'a10','nonexisting field':'a1'}
tsv='inputfile.tsv'
indata=np.genfromtxt(tsvF, delimiter='\t',names=True,dtype=None)
if dtypeoverrides:
dd=indata.dtype
print dd
dd=[(name,dtypeoverrides.get(name,dd[name])) for name in dd.names]
print dd
indata=np.genfromtxt(tsvF, delimiter='\t',names=True,dtype=dd)