Python和科学计算认证群组  - 讨论区

标题:numpy.loadtxt提示数据类型不

2011年06月08日 星期三 13:05

 

          data = np.loadtxt(file,delimiter = ",")

有时候调用时会出现这个问题

 

File "C:\Python26\lib\site-packages\numpy\lib\npyio.py", line 713, in loadtxt

    X.append(tuple([conv(val) for (conv, val) in zip(converters, vals)]))

ValueError: empty string for float()

 

通过查看数据类型,发现从表中导入的数据类型有一列是  |S8 或者<U8

但是其他列都是float,查看excel单元格也都是一样的

不知道怎么处理

2011年06月09日 星期四 10:28

方法有几个,例如可以用

a=np.load(..., dtype=np.str)

载入数据,这样得到的是一个字符串数组。

然后用np.delete删除文字列,如果文字列的下标是4的话,就:

b = np.delete(a, 4, axis=1)

最后将字符串数组转换成数值数组:

b.astype(np.float)

2011年06月09日 星期四 13:48

我也不知道哪个是文字列..

一列里都是数字,没发现有字符串的

2011年06月09日 星期四 17:42

那你一列一列的试试看,看看哪列不能转成np.float:

a[:, i].astype(np.float)

2011年06月09日 星期四 20:54

知道是哪列,这列很多数据,不知道怎么改类型

2011年06月10日 星期五 06:07

如果这列也是数字,但是无法转换成np.float的话,那就对这列也进行循环,对单个数值进行float(x)转换,捕捉不能转换的异常,看看x是什么内容。

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2024

    京ICP备05028076号