【发布时间】:2013-10-13 08:59:48
【问题描述】:
我对 nympy 很陌生,我正在尝试使用以下代码将制表符 (\t) 分隔的文本文件读入 numpy 数组矩阵:
train_data = np.genfromtxt('training.txt', dtype=None, delimiter='\t')
文件内容:
38 Private 215646 HS-grad 9 Divorced Handlers-cleaners Not-in-family White Male 0 0 40 United-States <=50K
53 Private 234721 11th 7 Married-civ-spouse Handlers-cleaners Husband Black Male 0 0 40 United-States <=50K
30 State-gov 141297 Bachelors 13 Married-civ-spouse Prof-specialty Husband Asian-Pac-Islander Male 0 0 40 India >50K
我期望的是一个形状为 (3, 15) 的二维数组矩阵
但使用我上面的代码,我只能得到一个形状为 (3,) 的单行数组
我不知道为什么每行的这 15 个字段没有分别分配一列。
我也尝试使用 numpy 的 loadtxt(),但它无法处理我的数据的类型转换,即即使我给了 dtype=None,它也尝试将字符串转换为默认浮点类型但失败了。
尝试过的代码:
train_data = np.loadtxt('try.txt', dtype=None, delimiter='\t')
Error:
ValueError: could not convert string to float: State-gov
任何指针?
谢谢
【问题讨论】:
-
您是否尝试过声明“dtype=String”之类的内容?
-
哦,我可以使用更传统的文件读取来解决这个问题(使用 csv 阅读器)
-
谢谢@abiessu。 dtype=np.str 工作正常,但我不想将它们全部转换为字符串。因此,我依靠 dtype=None 为我进行自动类型转换,在处理数字时,它使“int”或“float”比字符串具有更高的优先级
标签: python-2.7 numpy genfromtxt