我有一系列从 .csv 文件导入的嵌套列表,使用逗号分隔,我需要将嵌套列表转换为数组,并将每个子列表的每个元素转换为浮点数。
我的嵌套列表如下所示:
[[['[-27.19579876 -26.63047926 -25.66265752 -24.66628419 -25.96622205\n -28.30443609 -31.76915607 -38.00372114 -47.35791383 -39.40005965\n -29.22445377 -26.42370679 -28.66477882 -34.30370308 -35.18059249\n -34.46565279 -37.44988995 -39.01483496 -37.37774557 -34.56711077\n -33.19832104 -33.03131686 -34.41439695 -37.37570899 -42.09990677\n -44.07871575 -42.44796064 -44.26494463 -49.32499311 -56.70048713\n -64.66553782 -59.24921176 -54.79892771 -55.26403902 -59.2072573\n -63.22472635 -68.80195015 -75.08662546 -76.91907172 -77.38337998\n -77.63201733 -77.95896847 -78.64834584]'
'[-1.08386134 0.35004455 0.27842593 -1.94350689 -4.44183424 -4.07447619\n -1.77572529 -0.23410515 0.45280711 -2.23341921 -2.76410909 -3.15466483\n -3.40239693 -3.69140218 -1.79075435 0.6430064 3.24091082 3.31559296\n -0.01170333 0.69596049 1.39120214 2.02807499 3.00311775 4.18844905\n 5.95027894 5.19644159 1.94171193 -0.50207882 -1.7136904 -0.73163291\n 3.19769766 7.31430314 7.34184555 7.62544895 8.32473157 8.58314892\n 8.1814814 6.13480498 5.4934919 5.44513918 5.20248941 5.33109816\n 5.27733676]'
'[ -8.7461804 -8.00752109 -8.83808412 -9.5394061 -10.56202961\n -9.91695934 -8.74573382 -6.06317537 -3.36842469 -6.9563696\n -8.64882906 -9.41769463 -9.34989943 -7.4820141 -6.60575234\n -6.60480487 -5.72743738 -4.33574933 -6.03119951 -7.1813543\n -6.87034601 -7.09557771 -8.17130602 -8.05209492 -5.9291385\n -3.98802667 -4.14947874 -3.3090392 -1.16519149 1.10024417\n 1.4521037 -2.03653649 -3.63826979 -4.33748373 -4.19752051\n -3.32306985 -1.52347287 0.64845846 1.89777445 2.50546914\n 2.59801871 2.85173201 3.07714712]'
...
如您所见,它是一个嵌套列表,其中的子列表包含作为字符串的子子列表(等等)。因此,当我尝试将它们转换为数组并将值保存为浮点数时,如下所示,我收到以下错误:
nested_list = np.array([nested_list]).astype(np.float)
ValueError: could not convert string to float: '[-27.19579876 -26.63047926 -25.66265752 -24.66628419
-25.96622205\n -28.30443609 -31.76915607 -38.00372114 -47.35791383 -39.40005965\n -29.22445377
-26.42370679 -28.66477882 -34.30370308 -35.18059249\n -34.46565279 -37.44988995 -39.01483496
-37.37774557 -34.56711077\n -33.19832104 -33.03131686 -34.41439695 -37.37570899 -42.09990677\n
-44.07871575 -42.44796064 -44.26494463 -49.32499311 -56.70048713\n -64.66553782 -59.24921176
-54.79892771 -55.26403902 -59.2072573\n -63.22472635 -68.80195015 -75.08662546 -76.91907172
-77.38337998\n -77.63201733 -77.95896847 -78.64834584]'
所以,据我所知,一个完整的子列表是一个字符串,用空格或逗号分隔它会将值与 '[' 和 '\n' 符号分组。正如我所说,我的目标是只访问这些值,以便我可以保留嵌套列表的结构,并将这些值转换为浮点数,以便稍后将它们放入数组中。
最后的多维数组的维数是(样本数/列表长度,16)。
非常感谢任何帮助!
答案 0 :(得分:0)
看起来您的 csv 文件格式不正确。 使用 readlines 函数,然后去除 '\n' 部分。 也许它有效