Abh*_*bhi 6 numpy python-2.7 genfromtxt
我是nympy的新手,我正在尝试使用以下代码将tab(\ t)分隔的文本文件读入numpy数组矩阵:
train_data = np.genfromtxt('training.txt', dtype=None, delimiter='\t')
Run Code Online (Sandbox Code Playgroud)
文件内容:
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
Run Code Online (Sandbox Code Playgroud)
我期待的是形状的二维阵列矩阵(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
Run Code Online (Sandbox Code Playgroud)
有什么指针吗?
谢谢
我不相信 Numpy 数组可以处理单个数组中的不同数据类型。可以做的是将整个数组作为字符串加载,然后根据需要将必要的列转换为数字
# Load data as strings
train_data = np.loadtxt('try.txt', dtype=np.str, delimiter='\t')
# Convert numeric strings into integers
first_col = train_data[:,0].astype(np.int)
third_col = train_data[:,2].astype(np.int)
Run Code Online (Sandbox Code Playgroud)