如何修复:ValueError:long() 以 10 为底的无效文字

Posted

技术标签:

【中文标题】如何修复:ValueError:long() 以 10 为底的无效文字【英文标题】:How to fix: ValueError: invalid literal for long() with base 10 【发布时间】:2019-09-16 22:12:16 【问题描述】:

我正在尝试获取混合数据类型(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'

请帮忙 提前致谢。

【问题讨论】:

【参考方案1】:

这行得通:

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')

【讨论】:

以上是关于如何修复:ValueError:long() 以 10 为底的无效文字的主要内容,如果未能解决你的问题,请参考以下文章

如何修复 ValueError:不支持多类格式

PythonException:从 UDF 引发异常:'ValueError:如何在 Databricks 中修复此错误?

如何修复 tensorflow 中的“ValueError:空训练数据”错误

如何修复:ValueError:解包的值太多(预期为 2)PCA

如何修复Tensorflow中的“ValueError:操作数无法与形状(2592,)(4,)一起广播”?

如何修复 aws 区域错误“ValueError:必须使用 SageMaker 支持的区域设置本地 AWS 配置”