如何在Python中将指定输出转换为Array或Matrix?
用Python将图片中的输出转换为数组/矩阵
首先需要把图片里的文本内容提取出来(可通过OCR工具或手动复制),根据文本的格式,对应以下几种处理方式:
情况1:文本为空格+换行分隔的数字
如果图片中的输出是每行一组数字,用空格分隔(示例格式:
0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9
),可以用以下方法转换:
纯Python实现(生成二维列表)
# 替换为你从图片提取的文本 text = """0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9""" # 按行分割,每行转成float类型的列表 matrix = [list(map(float, line.split())) for line in text.splitlines()] print(matrix)
用Numpy生成数组/矩阵
import numpy as np text = """0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9""" # 方法1:列表推导式转numpy数组 arr = np.array([list(map(float, line.split())) for line in text.splitlines()]) # 方法2:用np.loadtxt更简便 arr = np.loadtxt(text.splitlines()) print(arr)
情况2:文本为Python列表格式(带[]和逗号)
如果图片中的输出是类似嵌套列表的格式(示例格式:
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
),可以直接用ast模块解析:
import ast import numpy as np text = """[[1, 2, 3], [4, 5, 6], [7, 8, 9]]""" # 转成Python二维列表 matrix = ast.literal_eval(text) # 转成numpy数组 arr = np.array(matrix) print(arr)
情况3:文本为其他格式(比如带括号、分号分隔)
如果图片中的输出是类似(1 2 3; 4 5 6; 7 8 9)这类格式,先清理文本再转换:
import numpy as np text = "(1 2 3; 4 5 6; 7 8 9)" # 去除首尾括号,按分号分割行 cleaned_lines = text.strip('()').split(';') # 每行处理成数字列表 matrix = [list(map(float, line.strip().split())) for line in cleaned_lines] arr = np.array(matrix) print(arr)
内容的提问来源于stack exchange,提问作者mehmet çece
相关产品推荐
相关产品推荐

