使用numpy / python中的genfromtxt自动转换字符串和浮点列

时间:2016-09-28 13:48:07

标签: python numpy type-conversion genfromtxt

我需要使用genfromtxt导入几个不同的数据文件。每个数据文件都有不同的内容。例如,文件1可能包含所有浮点数,文件2可能包含所有字符串,文件3可能包含浮点数和字符串等。此外,列数因文件而异,因为有数百个文件,所以不知道每个文件中哪些列是浮点数和字符串。但是,每列中的所有条目都是相同的数据类型。

有没有办法为genfromtxt设置转换器,它会检测每列中的数据类型并将其转换为正确的数据类型?

谢谢!

1 个答案:

答案 0 :(得分:1)

如果您能够使用Pandas库,pandas.read_csv 很多np.genfromtxt更有用,并会自动处理您提到的类型推断类型题。结果将是一个数据帧,但您可以通过多种方式之一获得一个numpy数组。 e.g。

import pandas as pd
data = pd.read_csv(filename)

# get a numpy array; this will be an object array if data has mixed/incompatible types
arr = data.values

# get a record array; this is how numpy handles mixed types in a single array
arr = data.to_records()

pd.read_csv有多种选项可用于各种形式的文本输入;请参阅pandas.read_csv documentation

中的更多内容