【问题标题】:Storing Arrays when looping through thousands of parameters循环遍历数千个参数时存储数组
【发布时间】:2015-12-05 19:13:03
【问题描述】:

我需要遍历 6 个大小为 5 的数组的每个组合(5^6 个组合)。在每个循环之后,我需要存储一个函数输出以及每个数字是什么。例如:

def function1(a, b, c, d, e, f): 

    return output

for A,B,C,D,E,F in [(A,B,C,D,E,F) for A in a for B in b for C in c for 
                    D in d for E in e for F in f]:
    function1(A,B,C,D,E,F)

在上面的示例中,对于每次迭代,我都需要存储“function1”的输出以及进入 function1 a-j 的所有参数。组织这个的最pythonic方式是什么?我打算这样做:

 all_results = np.zeros(5^6,7)

for ....
    answer = function1(a,b,c,d,e,f)
    all_results[i,:] = [answer, a,b,c,d,e,f]

但认为它可能是缓慢而古老的。有一个更好的方法吗。

【问题讨论】:

  • 您确定需要存储它吗?如果您不需要随机访问(或以后访问),生成器非常擅长并节省空间
  • @polpak 下一步是尝试梳理所有参数之间的统计关系。所以我确实需要访问它们以供以后使用。

标签: python arrays loops large-data


【解决方案1】:
import itertools.product

all_results = {}
for p in itertools.product(a,b,c,d,e,f):
   all_results[p] = function1(*p)

【讨论】:

  • 难以置信。谢谢。
猜你喜欢
  • 1970-01-01
  • 2019-07-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多