如何在Python中自动读取混合数据类型的文本文件?

如何在Python中自动读取混合数据类型的文本文件?,python,csv,numpy,automation,Python,Csv,Numpy,Automation,我在不同的列中有几个混合数据类型的文本文件, 我想阅读它们,以便程序自动识别每一列类型,因为我不知道哪一列包含哪一种类型 当我只读取数值数据时,我使用了以下方法,但对于混合数据类型,它失败了 Import numpy as np Import csv train = np.array(list(csv.reader(open(self.source_data_file, "rb"), delimiter=','))).astype('float') 在这里查看numpy.genfromtxt:

我在不同的列中有几个混合数据类型的文本文件, 我想阅读它们,以便程序自动识别每一列类型,因为我不知道哪一列包含哪一种类型

当我只读取数值数据时,我使用了以下方法,但对于混合数据类型,它失败了

Import numpy as np
Import csv
train = np.array(list(csv.reader(open(self.source_data_file, "rb"), delimiter=','))).astype('float')

在这里查看
numpy.genfromtxt

通过指定分隔符和数据类型,可以直接读取文件。 假设csv中有一行代码如下:

10,120.3,xfghfh
您可以执行以下操作:

data = np.genfromtxt('input_file', dtype=None , delimiter=",")
print (data)
这将为您提供以下信息:

data = array((10, 120.3, 'xfghfh'), 
       dtype=[('column_name1', '<i4'), ('column_name2', '<f8'), ('column_name3', 'S6')])
data=array((10120.3,'xfghfh'),

dtype=[('column_name1','在这里查看
numpy.genfromtxt

通过指定分隔符和数据类型,可以直接读取文件。 假设csv中有一行代码如下:

10,120.3,xfghfh
您可以执行以下操作:

data = np.genfromtxt('input_file', dtype=None , delimiter=",")
print (data)
这将为您提供以下信息:

data = array((10, 120.3, 'xfghfh'), 
       dtype=[('column_name1', '<i4'), ('column_name2', '<f8'), ('column_name3', 'S6')])
data=array((10120.3,'xfghfh'),


数据类型=[('column_name1','您试图将它们全部存储为float,请向我们展示您为区分数据类型所做的尝试。您不知道列的类型有什么原因吗?通常最好通过pre/post对数据进行排序processing@Greg谢谢你的关心,我不知道为什么这是一个关于人工神经网络的项目,我不会给用户输入的数据打结,有时它混合了分类字段和数字字段。@Remuze非常感谢您的关心,我尝试逐行读取文件,每行,我尝试将每个值存储为float,使用Try:exception,如果出现异常,则使用v值被认为是字符串。这是我的试验,我认为它很长,很耗时。这就是我为什么问专家的原因。再次感谢。这可能有助于加强用户的数据类型,并告诉他们他们输入了错误的内容。如果可以的话。如果您试图将它们全部存储为浮点,请向我们展示您尝试过的方法,以区分b在数据类型之间。您不知道列的类型有什么原因吗?通常最好通过pre/post对数据进行排序processing@Greg非常感谢你们的关心,我不知道这是一个关于人工神经网络的项目的专栏的类型,我不知道用户将要输入的数据是什么有时它混合了分类字段和数字字段。@Remuze非常感谢您的关心,我尝试逐行读取文件,每行,我尝试将每个值存储为float,使用Try:exception,如果出现异常,则该值被视为字符串。这是我的尝试,我认为它既冗长又耗时。这就是我询问专家的原因。许多再次感谢。如果您能感谢您的回答,这可能有助于对用户强制执行数据类型,并告诉他们他们输入了错误的内容。您的意思是,如果我们指定dtype=None,numpy将自行指定数据类型吗?是的,dtype是其中的关键。有关dtype用法的更多示例,请浏览上面的链接。谢谢Sharma,我希望我能投票支持你的答案,但我仍然没有声誉:-(大拇指支持你,欢迎ElNesr。我也在你的位置上。你可以接受我的建议作为答案(向下投票按钮下方的勾号),这样做你会得到2个代表分。希望我也会得到一些代表分;)非常感谢您的回答。您的意思是,如果我们指定dtype=None,numpy将自行指定数据类型吗?是的,dtype是这里的关键。请通过上面的链接了解更多的dtype用法示例。谢谢您,Sharma,我希望我能对您的答案进行投票,但我仍然没有声誉:-(竖起大拇指不客气,ElNesr。我也在你的位置上。你可以接受我的建议作为答案(向下投票按钮下方的勾号),这样做你会得到2个代表分。希望我也能得到一些代表分;)