将一连串的清单清单转换成Numpy阵列

时间:2018-10-19 20:57:54

标签: python arrays numpy

我对Pandas和Numpy还是很陌生。我正在尝试将包含列表列表的字符串转换为形状数组(150、150、3)。

现在,我正在从CSV导入Pandas数据框。数据框具有3列:imageName,data,label。当我运行df['data'][0]时,得到的字符串如下:

'[[[110 122 100]\n  [120 132 110]\n  [119 131 110]\n  ...\n  [105  89  90]\n  [117 104 105]\n  [ 56  45  46]]\n\n [[116 127 106]\n  [123 135 114]\n  [117 131 110]\n  ...\n  [ 99  84  83]\n  [103  88  90]\n  [108  97  97]]\n\n [[112 127 106]\n  [121 136 114]\n  [116 130 112]\n  ...\n  [102  88  86]\n  [109  95  96]\n  [116 105 105]]\n\n ...\n\n [[145 158 148]\n  [125 134 124]\n  [110 112 103]\n  ...\n  [105  84  86]\n  [106  85  87]\n  [113  92  94]]\n\n [[144 167 154]\n  [135 152 142]\n  [122 132 124]\n  ...\n  [104  83  85]\n  [106  85  87]\n  [109  88  90]]\n\n [[138 170 158]\n  [143 170 160]\n  [138 158 149]\n  ...\n  [105  84  86]\n  [105  84  86]\n  [105  84  86]]]'

每组数字都是一个像素(R,G,B的值)。基本上,我正在尝试重建图像数组。我正在尝试将每个字符串转换成形状数组(150,150,3),以便它们看起来像:

[[[110 122 100]
  [120 132 110]
  [119 131 110] ... you get the idea. 

我已经尝试过.strip().split()来摆脱\n字符,但是仍然不能解决问题。我也尝试导入ast并按照建议的here使用ast.literal_eval()-,但是它也不起作用。我收到一条奇怪的错误消息:

File "<unknown>", line 1
  [[[110 122 100]
         ^
SyntaxError: invalid syntax

任何帮助将不胜感激。感谢您的时间和考虑。

祝一切顺利, ry.co

1 个答案:

答案 0 :(得分:2)

您的数据已经丢失。那些...部分是NumPy丢弃数据的地方,因为您做了类似print(some_array)的操作,而不是像numpy.save那样保存了数据。您需要重新生成数据并正确地保存它。

相关问题