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

Auto convert strings and float columns using genfromtxt from numpy/python

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

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

谢谢!

如果您能够使用 Pandas 库,pandas.read_csvnp.genfromtxt 更有用 np.genfromtxt,并且会自动处理您问题中提到的那种类型推断。结果将是一个数据框,但您可以通过多种方式之一获取一个 numpy 数组。例如

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.

中查看更多内容