无法在矩阵中使用列切片(正确),其中数据从 Python 中的 CSV 中读取

Cannot use column slicing (correctly) in a matrix with data read from a CSV in Python

我正在尝试使用 genfromtxt 将 CSV 文件(包含一列字符串和一列整数)读入矩阵,然后使用切片仅获取包含字符串值的列并将其加载到数组中以供进一步使用处理中。

CSV 文件:

explore,1043
 sky,   585
 nikon, 552
 2007,  552
 ....  

我使用 genfromtxt 加载 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 作为二维字符串数组加载:

my_data = np.genfromtxt('c:/tags.csv', delimiter=',', dtype='S')
print my_data[:, 0]

结果:

['explore' 'sky' 'nikon' '2007']