首页 > 解决方案 > 如何修复:ValueError:long() 以 10 为底的无效文字

问题描述

我正在尝试获取混合数据类型(int、float、string)的 numpy 数组:

import numpy as np
l1=['car',10,4.5]
arr=np.array(l1, dtype='|S5, i4, f8')

我收到此错误:

ValueError: invalid literal for long() with base 10: 'car'

请帮助提前谢谢。

标签: python-2.7

解决方案


这有效:

import numpy as np

l1= [('car',10,4.5),('train',1000,5000)]
arr=np.array(l1, dtype='|S5,i4,f8')

print(arr) 

输出:

[('car',   10, 4.5e+00) ('train', 1000, 5.0e+03)]

您需要将列表中的每一行作为元组放入,这样才能正常工作。仅适用于汽车:

l1= [('car',10,4.5), ]
arr=np.array(l1, dtype='|S5,i4,f8')

推荐阅读