查询np.loadtxt()函数

时间:2014-10-04 01:31:54

标签: python numpy

我一直在尝试使用NumPy模块解析CSV文件,如下所示,我必须硬编码dtype,这也可以在下面看到。

def FileR(self,FileName):
    data = [('SecurityInfo', 'S64'),
                 ('Date', 'S64'),
                 ('Cost', 'float'),
                 ('Yield', 'float'),]      
    return data

def Gettheinfo(self):
    the_info = np.loadtxt('the.csv', delimiter=',', skiprows = 1, dtype = self.FileR('the.csv'))
    return the_info

有没有办法在没有硬编码np.loadtxt的情况下使用data

由于

1 个答案:

答案 0 :(得分:1)

我不知道您的文件是如何格式化的,但我假设它看起来像这样:

SecurityInfo,Date,Cost,Yield
a string,another string,11.50,2110.3
more,stuff,43.15,343

然后你可以使用更强大的numpy.genfromtxt

np.genfromtxt('abc.txt', delimiter=',', dtype=None, names=True)

dtype=None会自动确定每列的dtype。

names=True将从文件的第一行读取字段名称。

示例:

>>> np.genfromtxt('abc.txt', delimiter=',', dtype=None, names=True)
array([('a string', 'another string', 11.5, 2110.3),
       ('more', 'stuff', 43.15, 343.0)], 
      dtype=[('SecurityInfo', 'S8'), ('Date', 'S14'), ('Cost', '<f8'), ('Yield', '<f8')])