Numpy loadtxt编码

时间:2014-07-11 09:41:45

标签: python numpy encoding ubuntu-12.04 cp1252

我正在尝试使用numpy.loadtxt加载数据...我试图读取的文件是使用cp1252编码。是否有可能使用numpy将编码更改为cp1252?

以下

import numpy as np
n = 10
myfile = '/path/to/myfile'
mydata = np.loadtxt(myfile, skiprows = n)

给出:

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xf6 in position 189: invalid start byte

该文件包含元数据(前n行),后跟浮动表。

编辑:只有在Ubuntu(12.04)上运行此问题时才会出现此问题。在Windows上它运作良好。出于这个原因,我认为这个问题与编码有关。

Edit2:打开文件,如下所示:

import codecs
data = codecs.open(myfile, encoding='cp1252')
datalines = data.readlines()

但是我想使用np.loadtext直接将数据读入一个numpy数组。

1 个答案:

答案 0 :(得分:2)

我可以自己解决问题。

我必须先用适当的方法打开文件,然后用numpy读取它:

import numpy as np
import codecs

n=10

filecp = codecs.open(myfile, encoding = 'cp1252')
mydata = np.loadtxt(filecp, skiprows = n)

谢谢大家!