如何解决列表到 numpy 数组,不一致的字符串到浮点数转换错误
我很难理解以下异常,尽管我确信它非常简单。
raw_ticker = ['t1INCH:USD',3.5881,17907.680602819994,3.5945,10610.799208380002,-0.0172,-0.0048,3.5982,300068.50303883,3.9639,2.7685]
我想把它转换成一个numpy数组ticker
,并指定数据类型:
ticker = np.array(raw_ticker,dtype=[
('symbol',str),('bid',float),('bid_size',('ask',('ask_size',('day_chg',('day_chg_p',('last',('vol',('high',('low',float)])
我收到以下错误:
无法将字符串转换为浮点数:'t1INCH:USD'
我没有得到,因为我明确指定这个字段是一个字符串,而不是一个浮点数。
解决方法
以元组或元组列表的形式提供数据:
In [363]: raw_ticker = ['t1INCH:USD',3.5881,17907.680602819994,3.5945,10610.799208380002,-
...: 0.0172,-0.0048,3.5982,300068.50303883,3.9639,2.7685]
In [364]: ticker = np.array(tuple(raw_ticker),...: dtype=[
...: ('symbol',str),...: ('bid',float),...: ('bid_size',...: ('ask',...: ('ask_size',...: ('day_chg',...: ('day_chg_p',...: ('last',...: ('vol',...: ('high',...: ('low',float)])
In [365]: ticker
Out[365]:
array(('',17907.68060282,10610.79920838,-0.0172,2.7685),dtype=[('symbol','<U'),('bid','<f8'),('bid_size',('ask',('ask_size',('day_chg',('day_chg_p',('last',('vol',('high',('low','<f8')])
'symbol' dtype 需要一个字符串宽度,例如'U20'。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。