【发布时间】:2015-12-01 14:40:26
【问题描述】:
我正在尝试使用 numpy.genfromtxt 函数导入包含字符串和数字列的 txt。本质上我需要一个字符串数组。这是一个给我带来麻烦的示例txt:
H2S 1.4
C1 3.6
txt 被编码为 unicode。这是我正在使用的代码:
import numpy as np
decodf= lambda x: x.decode('utf-16')
sample = np.genfromtxt(('ztest.txt'), dtype=str,
converters = {0:decodf, 1:decodf},
delimiter='\t',
usecols=0)
print(sample)
这是输出:
['H2S' 'None']
我尝试了多种方法来解决此问题。通过设置 dtype=None 并消除转换器,我得到:
[b'\xff\xfeH\x002\x00S' b'\x00g\x00\xe8\x00n']
我还尝试消除转换器并将 dtype=str 并得到:
UnicodeDecodeError: 'ascii' codec can't decode byte 0xff in position 0: ordinal not in range(128)
我知道这是一个麻烦的功能。我看到了不同的选择 (例如:here)但无法让任何人工作。
我做错了什么?与此同时,我正在研究熊猫... 提前致谢
【问题讨论】: