早上好,如果这是个模糊的问题,我很抱歉。我尽量描述一下。你知道吗
基本上,我使用Python代码对空气扩散模型的结果进行后处理,以测试不同的场景。我使用Python,因为它可以在几秒钟内遍历结果,而分散软件则需要几个小时。我的问题是,代码仍然需要数周的时间来运行我所有的场景,我想知道这是否是由于糟糕的编程。我不会把整个代码放在这里,因为很多时候如果它不相关,但我会经历我正在采取的步骤。首先,我的问题是:
总而言之,每个源的排放量是四种排放率以及两种状态的函数。因此,每个污染源有8种可能的排放情景,所有17种污染源一次都可能处于这些情景中的任何一种。相当多的排列!你知道吗
我现在是这样计算结果的。我想知道每种状态组合的最大结果是什么。如果你熟悉空气扩散模型,我已经根据1g/s的排放率计算了结果,所以我可以根据上面的排放率缩放结果。你知道吗
代码:
sources = ['1','2',...'17']
emission_rates = ['a','b','c','d']
Source_1_results = [list of values of length x] ## NOTE THAT x is VERY LONG. THESE ARE HUGE ARRAYS (400,000 values)
Source_2_result = [list of values of length x]
.
.
Source_17_results = [list of values of length x]
working_sources = list(itertools.combinations(sources, 5))
source_emission_rate = list(itertools.combinations_with_replacement(emission_rates, 17))
for e in source_emission_rate:
for w in working_sources:
temp_results = []
for num, source in enumerate(sources):
temp_results[num] = [Source_x_result * e * w] ##THIS LINE INVOLVES SOME LOOKUP IN MY CODE TO REFERENCE THE ACTUAL RESULTS AND EMISSIONS ETC.
我很抱歉,如果这是不够的代码。我可以发布完整的代码,但同样的,在大多数情况下,它只是分配变量等
我的问题是:有没有一种更快的方法来遍历所有可能的状态?我的代码目前正在运行,但我的python知识有限,希望能够在更改变量等时更频繁地运行它
提前谢谢!你知道吗
这应该稍微快一点(少一点中间列表+列表理解)
相关问题 更多 >
编程相关推荐