我正在尝试使用循环为所有3个输入场景运行我的模型,而不是必须复制粘贴脚本3次并手动更改输入数据。我有3个输入数据数组,并希望将结果(也是相同长度的数组)存储在同一变量中的单独嵌套数组中。目前,我只知道如何追加结果。但是,它是不正确的,我想将不同场景的结果存储在同一变量中的单独元素中。
import numpy as np
# Scenarios
years = np.arange(50)
sc0 = np.arange(50)
sc1 = np.arange(50)+100
sc2 = np.arange(50)+200
scenarios = [sc0, sc1, sc2]
results = []
# Model computes something
for sc in range(3):
for t in years:
outcome = scenarios[sc][t] / 10
results.append(outcome)
简而言之,该解决方案应该允许我使用results[0]
,results[1]
和results[2]
答案 0 :(得分:0)
我创建了一个新列表subresults
,为每个场景创建了[]
。然后,在为该场景计算每个结果后,将其附加到列表results
。
import numpy as np
# Scenarios
years = np.arange(50)
sc0 = np.arange(50)
sc1 = np.arange(50)+100
sc2 = np.arange(50)+200
scenarios = [sc0, sc1, sc2]
results = []
# Model computes something
for sc in range(3):
subresults = []
for t in years:
outcome = scenarios[sc][t] / 10
subresults.append(outcome)
results.append(subresults)
然后,您可以使用results[0]
,results[1]
和results[2]
来访问您的搜索结果。
答案 1 :(得分:0)
理解也会这样做:
resultsets = [[sc[t]/10 for t in years] for sc in scenarios]