我在不同的列中有多个混合数据类型的文本文件, 我想阅读它们,以便程序识别每个列类型自动,因为我不知道哪个列包含哪种类型。
当我只读取数字数据时,我使用了以下内容,但它对于混合数据类型失败了。
Import numpy as np
Import csv
train = np.array(list(csv.reader(open(self.source_data_file, "rb"), delimiter=','))).astype('float')
答案 0 :(得分:4)
在这里查看numpy.genfromtxt
:http://docs.scipy.org/doc/numpy-1.10.0/reference/generated/numpy.genfromtxt.html
您可以通过指定分隔符和dtype直接读取文件。 假设你在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')])