我有一个csv文件与各种参数的加速度计和陀螺数据的样本列表。数组(MAD,和float zcr)包含值。当我读回它时,它们作为字符串返回,对于我的处理,我需要数字(int/float)。 我试过了
results = map(int, results)
以及
^{pr2}$我从here得到它们,但数组有问题。在
Traceback (most recent call last):
File "/home/pi/Desktop/imu/mpu_v16.py", line 458, in <module>
main()
File "/home/pi/Desktop/imu/mpu_v16.py", line 439, in main
compare()
File "/home/pi/Desktop/imu/mpu_v16.py", line 305, in compare
nrow = [float(i) for i in nrow]
ValueError: could not convert string to float: [ 53 73 79 139]
我怎么解决这个问题?在
我正在添加我的数据示例:
C,3.3440452548950501e-17,0.99999999999999645,0.89244290726827058,1.7947499048650259,3.3651560716219242,[108 123 149 220 235],0.99999999999999822,110223.99999999971,331.99999999999915,-5.9524005537131887e-17,0.99999999999999989,0.81051947660768831,1.4756039753111405,4.4268119259334213,[103 122 160 205 212],0.99999999999999989,110224.00000000001,332.00000000000006,-6.4540073419474463e-17,0.999999999999999,0.74198651253618131,0.63512619216067612,4.256170326687128,[106 164 192 226],0.99999999999999933,110224.00000000001,332.00000000000006,2.083131190971185e-16,1.0000000000000009,0.66659374901400581,0.52759419283475883,4.5104130995285256,[ 7 14 45 56 150 327],1.0000000000000002,110223.99999999994,331.99999999999983,-3.0890618042093025e-17,0.99999999999999667,0.58289607514346964,0.21669963911591134,4.7919240951669444,[ 82 149 208],0.99999999999999822,110223.99999999942,331.99999999999824,-3.2771643497971487e-16,1.0000000000000009,0.58746356061392535,0.29681486739557372,5.2741718744905794,[ 26 48 59 66 114 171 231 242],1.0000000000000002,110224.00000000036,332.00000000000108,-0.57536274345915739,0.147595080030029,0.13018399571123057
因为您的输入由浮点字符串和数组字符串组成,所以需要一种区分这两者的方法。一种方法是检查字符串是否有空格?然后,对于float字符串,只需像以前一样使用
float(i)
。然后对于数组字符串,尝试在空格上拆分以分隔数组元素,然后对每个单独的字符串float(convert a string to an array)运行float
。在任意浮点输入:
"54.6"
检查空格:
False
电话:
float("54.6")
任意数组输入:
"[ 53 73 79 139]"
检查空格:
True
删除方括号:
" 53 73 79 139"
在空间上拆分并存储在数组中:
["53","73","79","139"]
对每个元素调用float:
[53,73,79,139]
您的csv格式不正确,或者您读取错误。你提取的不是单独的数字,而是放在方括号里的多个数字。请参阅错误消息:
所以你有一个类似}。在
["[ 53 73 79 139]", "[ 123 12 11]"]
的列表,而实际上应该有[["53", "73", "79", "139"], ["123", "12", "11"]]
或{如果您的csv格式不正确,您可以通过拆分错误的值来实时更正此错误。这将为您提供一个简单的列表,如
^{pr2}$[53, 73, 79, 139]
:这将为您提供一个列表列表,如
^{3}$[[ 53, 73, 79, 139], ...]
:相关问题 更多 >
编程相关推荐