我试图读取CSV文件(包含字符串的一列和整数的一列)到矩阵使用genfromtxt,然后使用切片获得仅包含字符串值的列,并将其加载到一个数组进行进一步处理。
CSV文件:
explore,1043
sky, 585
nikon, 552
2007, 552
....
我使用genfromtext来加载csv:
my_data = np.genfromtxt('c:/tags.csv', delimiter=',')
和当我试图切片矩阵,以获得列只包含字符串:
print my_data[:,0]
结果如下:
[ nan nan nan 2007. nan nan nan nan nan nan ....
它似乎抱怨数据类型,然后我尝试指定CSV中包含的数据类型:
my_data = np.genfromtxt('c:/tags.csv', dtype = [('mystring','S5'), ('myint','i8')], delimiter=',')
我得到一个元组数组而不是一个矩阵....
[('flower', 1043L) ('sky', 585L) ('nikon', 552L) ('2007', 552L) ..... ]
我做错了什么?
如果您只对第一列感兴趣,您可以将CSV加载为字符串的2D数组:
my_data = np.genfromtxt('c:/tags.csv', delimiter=',', dtype='S')
print my_data[:, 0]
结果:['explore' 'sky' 'nikon' '2007']