Numpy loadtxt 编码
我正在尝试用numpy.loadtxt来加载数据。我想读取的文件是用cp1252编码的。请问有没有办法用numpy来更改编码为cp1252呢?
下面这段代码:
import numpy as np
n = 10
myfile = '/path/to/myfile'
mydata = np.loadtxt(myfile, skiprows = n)
运行后出现了:
UnicodeDecodeError: 'utf-8' 编码无法解码位置189的字节0xf6:无效的起始字节
这个文件包含了一些元数据(前面的几行)和后面的浮点数表格。
这个问题只在Ubuntu(12.04)上出现。在Windows上运行得很好。因此我觉得这个问题可能和编码有关。
用下面的方式打开文件也能正常工作:
import codecs
data = codecs.open(myfile, encoding='cp1252')
datalines = data.readlines()
不过我想直接用np.loadtxt
把数据读进numpy数组里。
1 个回答
4
在用numpy读取文件之前,你得先用合适的编码打开这个文件:
import numpy as np
import codecs
n=10
filecp = codecs.open(myfile, encoding = 'cp1252')
mydata = np.loadtxt(filecp, skiprows = n)