Python 将列表的字符串转换为Numpy数组
我对熊猫和Numpy还很陌生。我正在尝试将包含列表列表的字符串转换为形状数组(150、150、3) 现在,我正在从CSV导入熊猫数据帧。dataframe有3列:imageName、data、label。当我运行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
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数组。请告诉我们您是否可以按照建议修复输入,或者您是否确实需要以给定的格式解析输入。