我正在導入帶有numpy.genfromtxt
的CSV文件。Python:numpy.genfromtxt - 需要包含無效字符的列名稱
要導入的數據具有列名稱的標題,其中一些列名稱包含genfromtxt
認爲無效的字符。具體而言,一些名稱包含「#」和「」。輸入數據無法更改,因爲它是由我無法控制的其他來源生成的。
使用names=True
和comments=None
,我無法引入所需的所有列名稱。
我試過覆蓋numpy.lib.NameValidator.deletechars=None
,但這並不影響實際使用的NameValidator類實例。
據我所知,deletechars
存在,因爲重新陣列可能訪問字段,就好像它是一個屬性。但是,我只需要能夠讀取包含無效字符的列名稱,即使在讀入時字符被剝離。
是否有辦法強制NameValidator
不檢查無效字符或修改它檢查的字符?我無法修改numpy/lib/_iotools.py,因爲我不是root用戶,並且修改共享安裝會很糟糕。
難道你不能自己提取標題,然後跳過它來純粹由'genfromtxt'提取數據嗎? – 2012-08-07 06:32:22
@JakobS。 - 我正在試驗,閱讀標題行,然後使用正則表達式來查找哪些名稱包含無效字符並將其替換。然而,這對我來說並不是一個同質的解決方案,我希望numpy有一條規定可以繞過NameValidator或者至少重新定義刪除者。 – freakinschweet 2012-08-07 06:48:18
嗨,雖然我根據我對問題的最佳猜測給出了一個答案,但如果您給出了一個簡化但完整的csv文件示例,它可能會有所幫助。 – xubuntix 2012-08-07 08:30:26