genfromtxt强制生成未知列数的列名

2024-04-25 20:25:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我很难让numpy加载表格数据并自动生成列名。这看起来很简单,但我做不到。在

如果我知道可以轻松创建names参数的列数,但我没有这个知识,我希望避免事先对数据文件进行自省。在

当我不知道文件中有多少列时,如何强制numpy生成列名,或者自动使用tuple-likedtype?我想在读取数据后操作列名。在

我目前的方法:

data = np.genfromtxt(tar_member, unpack = True, names = '')-我想通过提供一些“空”参数来强制自动生成列名。结果有错误ValueError: size of tuple must match number of fields.

data = np.genfromtxt(tar_member, unpack = True, names = True)-“工作”但消耗第一行数据。在

data = np.genfromtxt(tar_member, unpack = True, dtype = None)-用于混合类型的数据。自动类型猜测将dtype扩展为一个元组,并分配名称。但是,对于所有内容都是float的数据,dtype被设置为float64,当我试图访问data.dtype.names时,我得到了ValueError: there are no fields defined。在


Tags: of数据numpytruedata参数namesnp
1条回答
网友
1楼 · 发布于 2024-04-25 20:25:14

我知道有一种更简洁的方法可以做到这一点,但是如果您不介意强行提出这个问题,您可以生成dtype结构并将其直接分配给数据数组。在

x = numpy.random.rand(10,10)
numpy.savetxt('test.out', x, delimiter=',')
dataa = numpy.genfromtxt('test.out',delimiter=",", dtype=None)
if dataa.dtype.names is None:#then dataa is homogenous?
  l1 = map(lambda z:('f%d'%(z),dataa.dtype),range(0,dataa.shape[1]))
  dataa.dtype = dtype(l1)

dataa.dtype
dataa.dtype.names

相关问题 更多 >