Python:numpy.genfromtxt - 需要包含无效字符的列名

标签 python numpy genfromtxt

我正在使用 numpy.genfromtxt 导入 CSV 文件。

要导入的数据有一个列名的标题,其中一些列名包含 genfromtxt 认为无效的字符。具体来说,一些名称包含“#”和“”。输入数据无法更改,因为它是由我无法控制的其他来源生成的。

使用 names=Truecomments=None,我无法引入我需要的所有列名。

我已经尝试覆盖 numpy.lib.NameValidator.deletechars=None,但这不会影响实际使用的 NameValidator 类实例。

我知道 deletechars 的存在是因为它有可能像访问属性一样访问字段。但是,我必须能够读入包含无效字符的列名,即使这些字符在读入时被剥离也是如此。

有没有办法强制 NameValidator 不检查无效字符,或者修改它检查的字符?我无法修改 numpy/lib/_iotools.py,因为我不是 root,修改共享安装会很糟糕。

最佳答案

您没有明确声明 numpy.genfromtxt 是一项硬性要求,所以我建议您尝试 asciitable .

这个模块有办法在解析之前替换某些条目:http://cxc.harvard.edu/contrib/asciitable/#replace-bad-or-missing-values

并且您还可以根据现有阅读器定义自己的阅读器:http://cxc.harvard.edu/contrib/asciitable/#advanced-table-reading

asciitable reader 的输出是 numpy 数组,所以你应该能够或多或少地用 asciitable 直接替换你当前使用的函数。

关于Python:numpy.genfromtxt - 需要包含无效字符的列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11840322/

相关文章:

python - 如何使用 pysnmp 避免高 CPU 使用率

python - 为什么 pickle 不考虑可变/引用对象?

c++ - 需要跳过每行的最后一个词吗?

Python:如何使用 Tornado 从生成器函数返回?

Python - 导入错误

python - Pandas:合并来自两个不同列表的多个数据帧

python - 使用组件参数的 GaussianMixture 初始化 - sklearn

sorting - numpy 数组的并行就地排序

python - numpy.genfromtxt 似乎忽略了 dtype

python - 使用 numpy.genfromtxt 读取包含逗号的字符串的 csv 文件