我需要使用genfromtxt导入几个不同的数据文件。每个数据文件都有不同的内容。例如,文件1可能包含所有浮点数,文件2可能包含所有字符串,文件3可能包含浮点数和字符串等。此外,列数因文件而异,因为有数百个文件,所以不知道每个文件中哪些列是浮点数和字符串。但是,每列中的所有条目都是相同的数据类型。
有没有办法为genfromtxt设置转换器,它会检测每列中的数据类型并将其转换为正确的数据类型?
谢谢!
答案 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。