以正确的格式读取float和string

时间:2017-07-05 03:32:20

标签: arrays python-2.7 ipython

我正在尝试从csv文件中读取数据。有7列。索引为5的列是字符串类型,而其余列是浮点数。

当我给出以下命令只是为了读取浮点数据时,输出格式正确。

data = np.loadtxt('data.csv', delimiter=',', usecols= (0,1,2,3,4,6))
print "\ndata=\n",data

输出

data=
 [[  3.00000000e+00   9.46000000e+01   1.80180000e+02   3.28900000e+01
    6.80685824e+00   3.70000000e-01]
...,
 [  3.00000000e+00   1.33200000e+02   2.51460000e+02   2.01600000e+01
    5.77236048e+00  -2.70000000e-01]]

形状为(500L,6L)

但是当我尝试读取包括第5列的字符串类型的所有列时,我使用以下代码:

    datastr = np.loadtxt('data.csv', delimiter=',',dtype={'names': ('c1','c2','c3','c4','c5','c6','c7'),
                                                                            'formats':('f4','f4','f4','f4','f4','S10','f4')})
print "\ndatastr=\n",datastr

现在输出

datastr= 
[ ( 3.,   94.59999847,  180.17999268,  32.88999939,   6.80685806, 'Large',  0.37      ) ... ( 3.,  133.19999695,  251.46000671,  20.15999985,   5.77236032, 'Small', -0.27000001)]

形状为(500L,)

但是我需要将这个datastr形状设置为(500L,7L),就像我在(500L,6L)形状的所有浮动示例中一样

我该怎么做?

由于

1 个答案:

答案 0 :(得分:0)

datastr中的元素为<type 'numpy.void'>,您可以在here找到有关它的一些信息。