2013-05-11 26 views
2

好了,我从一个CSV文件加载numpy的阵列, 数组的样子:numpy的导入和转换列浮动

array([['0', '3', '22', ..., '7.25', '1', '0'], 
     ['1', '1', '38', ..., '71.2833', '0', '0'], 
     ['1', '3', '26', ..., '7.925', '1', '0'], 
     ..., 
     ['0', '3', '', ..., '23.45', '1', '0'], 
     ['1', '1', '26', ..., '30', '0', '0'], 
     ['0', '3', '32', ..., '7.75', '0', '0']], 
     dtype='|S8') 

我想数组元素转换为浮动,但我'有这个错误

data2 = np.array(data).astype(np.float) 

Traceback (most recent call last): 
    File "<input>", line 1, in <module> 
ValueError: could not convert string to float: 

有没有办法解决这个问题与numpy或熊猫?

+0

我想你应该看看你的问题的根源:您在CSV文件怎么会看。因为这应该能够立即处理并读取它作为浮动。你能否提供你的CSV文件的样子? – joris 2013-05-11 14:46:18

回答

1

问题是具有特定的值而不是Numpy或一般的数据。我认为这是导致问题的空字符串,无法将''表示为浮点数。

3

我想你的数组中有一个空字符串('')。因此,将您的阵列的''更改为0 s。

假设你的数组是a

>>> a[a=='']='0' 
>>> a2 = a.astype(np.float)