从CSV导入Numpy,并将列转换为float

好的,所以我有一个从CSV文件加载的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或pandas解决此问题?


繁星点点滴滴
浏览 540回答 2
2回答

蛊毒传说

问题在于特定的值,而不是Numpy或您的数据。我认为是导致问题的空字符串,无法将其表示''为浮点数。

catspeake

我认为''您的数组中有一个空的string()。因此,将数组更改''为0。假设您的数组是a:>>> a[a=='']='0'>>> a2 = a.astype(np.float)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python