如何将嵌套matrix结构转换为单层级数值列表?
从嵌套matrix结构提取数值的可行实现方法
以下默认你提到的matrix是NumPy库的矩阵对象,根据使用场景不同,有以下几种实现方案:
- 方案1:列表推导式直接索引取值(运行时对象处理首选,性能最优)
每个嵌套结构最内层是只有1个元素的二维matrix,直接按索引取值即可,示例代码:
其中import numpy as np # 假设input_data是已经加载的输入对象 input_data = [[np.matrix([[0.57863575]])], [np.matrix([[0.57170157]])], [np.matrix([[0.44320711]])], [np.matrix([[0.37195535]])]] result = [item[0].item() for item in input_data]item()方法会直接把NumPy标量转为Python原生数值类型,也可以替换为item[0][0,0]实现一样的效果。 - 方案2:map函数批量处理
适合偏好函数式写法的场景,代码更简洁:result = list(map(lambda x: x[0].item(), input_data)) - 方案3:正则匹配提取(仅适用于原始字符串形式的输入)
如果你拿到的是未解析的字符串格式输入,不需要加载为Python对象,直接匹配所有浮点数即可:import re input_str = "[[matrix([[0.57863575]])], [matrix([[0.57170157]])], [matrix([[0.44320711]])], [matrix([[0.37195535]])]]" result = list(map(float, re.findall(r"\d+\.\d+", input_str)))
以上三种方案输出都符合你给出的预期结果[0.57863575, 0.57170157, 0.44320711, 0.37195535]。
内容的提问来源于stack exchange,提问作者Jayant Kalyan
相关产品推荐
相关产品推荐

