使用来自 numpy/python 的 genfromtxt 自动转换字符串和浮点列
Auto convert strings and float columns using genfromtxt from numpy/python
我有几个不同的数据文件需要使用 genfromtxt 导入。每个数据文件都有不同的内容。例如,文件 1 可能包含所有浮点数,文件 2 可能包含所有字符串,文件 3 可能包含浮点数和字符串等的组合。列数也因文件而异,并且由于有数百个文件,我不知道每个文件中哪些列是浮点数和字符串。但是,每列中的所有条目都是相同的数据类型。
有没有办法为 genfromtxt 设置一个转换器,它会检测每一列中的数据类型并将其转换为正确的数据类型?
谢谢!
如果您能够使用 Pandas 库,pandas.read_csv
比 np.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.
中查看更多内容
我有几个不同的数据文件需要使用 genfromtxt 导入。每个数据文件都有不同的内容。例如,文件 1 可能包含所有浮点数,文件 2 可能包含所有字符串,文件 3 可能包含浮点数和字符串等的组合。列数也因文件而异,并且由于有数百个文件,我不知道每个文件中哪些列是浮点数和字符串。但是,每列中的所有条目都是相同的数据类型。
有没有办法为 genfromtxt 设置一个转换器,它会检测每一列中的数据类型并将其转换为正确的数据类型?
谢谢!
如果您能够使用 Pandas 库,pandas.read_csv
比 np.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.