numpy.genfromtxt 使用转义字符解析列名不正确



我正在使用以下代码从CSV文件中读取大量数据

data = np.genfromtxt(inputfile.name, delimiter=',', dtype=float, names=True)

根据文档字符串,使用带有 True 值的名称关键字意味着数据在一维结构化数组中结构化,其中原始 CSV 文件的列可以通过其名称访问,取自文件的第一行。

虽然这通常有效,但似乎没有像我期望的那样解析名称字符串作为原始字符串。 r'some string'

例如,文件中的字符串

s = "LNAGain(Corner=nom_8;modelFiles=model.paths.scs;cur_ctl_counter=1;vsupply=1.65;temperature=85) Y"
#correct

解析为

s="LNAGain_Cornernom_8modelFilesmodelpathsscscur_ctl_counter1vsupply165temperature85_Y"
#wrong

所以它错过了等号、分号和括号。有没有办法强制读取为原始字符串?或者这是 numpy 方法中的错误?

如果我只是阅读与

inputfile.readline() 

一切都被正确解析/如我所愿。

提前感谢!

我通过使用 pandas 模块进行 csv 导入而不是 numpy 来解决我的问题。见 http://pandas.pydata.org

它似乎以更智能的方式解析包含数据的文本文件。

所以,与其做

import numpy as np
data = np.genfromtxt(inputfile.name, delimiter=',', dtype=float, names=True)

我愿意

import pandas as pd
data = pd.read_csv(inputfile.name, sep=',')

一切都很好。:)

当然,我必须编辑我的代码以使用 pandas 方法来处理数据对象,但更改很小。

例如,访问我将使用的数据列

data[data.columns[column_index]]

而不是

data[data.dtype.names[column_index]

相关内容

  • 没有找到相关文章

最新更新