gpt4 book ai didi

python - numpy.loadtxt 和制表符分隔值 : data type not understood

转载 作者:太空宇宙 更新时间:2023-11-04 06:01:25 26 4
gpt4 key购买 nike

我在使用 numpy.loadtxt 导入制表符分隔值时遇到问题。

我需要导入的行具有以下形式:

01-Aug-2013 1143_051-100    r   702 135 32  7   

我只想阅读第 0、2、3、4、5、6 列。这是我目前所拥有的:

numpy.loadtxt(test,dtype= (str,str,int,int,int,int), delimiter= "\t", usecols = (0,2,3,4,5,6))

这将返回无法理解的数据类型。我在这里缺少什么?

最佳答案

为了实现快速索引,NumPy 依赖于每个具有固定宽度的数据类型。所以如果你指定一个字符串数据类型,你还必须指定字符串中的字节数。所以

dtype = '|S11,|S1,<i4,<i4,<i4,<i4'

适用于您发布的数据。

但是,当字符串具有可变宽度时,使用 np.genfromtxt 而不是 np.loadtxt 更容易,因为您可以指定 dtype=None 并让 np.genfromtxt 对每列的 dtype 进行有根据的猜测。


In [15]: np.genfromtxt('data', delimiter='\t', dtype=None, usecols=(0,2,3,4,5,6))
Out[15]:
array(('01-Aug-2013', 'r', 702, 135, 32, 7),
dtype=[('f0', 'S11'), ('f1', 'S1'), ('f2', '<i4'), ('f3', '<i4'), ('f4', '<i4'), ('f5', '<i4')])

In [16]: np.loadtxt('data', delimiter='\t', dtype='|S11,|S1,<i4,<i4,<i4,<i4', usecols=(0,2,3,4,5,6))
Out[16]:
array(('01-Aug-2013', 'r', 702, 135, 32, 7),
dtype=[('f0', 'S11'), ('f1', 'S1'), ('f2', '<i4'), ('f3', '<i4'), ('f4', '<i4'), ('f5', '<i4')])

关于python - numpy.loadtxt 和制表符分隔值 : data type not understood,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24839654/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com