Python 将列表的字符串转换为Numpy数组

Python 将列表的字符串转换为Numpy数组,python,arrays,numpy,Python,Arrays,Numpy,我对熊猫和Numpy还很陌生。我正在尝试将包含列表列表的字符串转换为形状数组(150、150、3) 现在,我正在从CSV导入熊猫数据帧。dataframe有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

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

现在,我正在从CSV导入熊猫数据帧。dataframe有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
并按照建议使用
ast.literal\u eval()
,但也不起作用。我收到一条奇怪的错误消息:

File "<unknown>", line 1
  [[[110 122 100]
         ^
SyntaxError: invalid syntax
文件“”,第1行
[[[110 122 100]
^
SyntaxError:无效语法
非常感谢您的帮助。谢谢您的时间和考虑

祝你一切顺利,
ry.co

您的数据已经丢失。这些
..
部分是NumPy丢弃数据的地方,因为您执行了
打印(一些数组)之类的操作
而不是用
numpy.save之类的东西保存它。这次你需要重新生成数据并正确保存。

你的数据已经丢失了。那些
部分是numpy丢弃数据的地方,因为你做了
打印(一些数组)之类的事情
而不是用
numpy.save
之类的东西保存它。这次你需要重新生成数据并正确保存。

这些
..
真的存在吗?因为如果是这样,你就不走运了。
ast.string\u eval
对列表有效,但你没有列表……你有一个numpy打印。这还不够,你应该保存首先是实际的numpy数组。让我们知道您是否可以按照建议修复输入,或者您是否确实需要按照您给定的格式解析输入。
是否真的存在?因为如果是这样,您就不走运了。
ast.string\u eval
在列表上工作,但您没有列表…您有numpy打印。这这还不够,您应该首先保存实际的numpy数组。请告诉我们您是否可以按照建议修复输入,或者您是否确实需要以给定的格式解析输入。