在Python中,不能在从CSV读取数据的矩阵中(正确地)使用列切片



我试图读取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']

相关内容

  • 没有找到相关文章

最新更新