Python:遍历多输入场景并将结果存储为嵌套数组的技术问题
嗨,这问题我熟!其实核心就是把每个场景的结果整个数组作为独立元素存入结果变量,而不是把结果里的单个元素挨个加进去。我给你一步步讲怎么实现:
第一步:把输入数据整理成可遍历的列表
首先把你的3组输入数据放到一个列表里,这样就能用循环批量处理了。比如:
# 假设你的3组输入是这三个数组,替换成你实际的输入数据 input_scenario_1 = [10, 20, 30] input_scenario_2 = [40, 50, 60] input_scenario_3 = [70, 80, 90] # 把它们打包成一个可遍历的列表 all_inputs = [input_scenario_1, input_scenario_2, input_scenario_3]
第二步:初始化结果容器并循环处理
接下来初始化一个空列表作为结果容器,然后遍历每个输入场景,运行模型得到结果后,把整个结果数组作为一个元素添加进去:
# 导入你的模型相关库(比如import tensorflow as tf之类的,根据你的实际情况) import ... # 初始化嵌套结果数组 all_results = [] # 循环处理每个场景 for input_data in all_inputs: # 这里替换成你实际运行模型的代码,比如model.predict(input_data) # 下面是模拟模型返回同等长度结果的示例 scenario_result = [val * 0.5 for val in input_data] # 替换成你的模型逻辑 # 关键:把整个结果数组作为独立元素加入all_results all_results.append(scenario_result)
更简洁的写法:列表推导式
如果你的模型调用逻辑比较简洁,用列表推导式一行就能搞定,更符合Python风格:
all_results = [model.predict(data) for data in all_inputs]
最终效果
处理完后,all_results就是你想要的嵌套数组,每个元素对应一个场景的结果。比如上面的示例会得到:
[[5.0, 10.0, 15.0], [20.0, 25.0, 30.0], [35.0, 40.0, 45.0]]
要是你之前用append出问题,大概率是不小心把结果数组里的单个元素挨个append了(比如for res in scenario_result: all_results.append(res)),那结果就会变成扁平的数组,而不是嵌套的。记住要把整个场景结果数组作为一个元素添加就对啦!
内容的提问来源于stack exchange,提问作者user9316622
相关产品推荐
相关产品推荐

