使用numpy构建两个数组的所有组合的数组
我试图在尝试使用6参数函数的参数空间之前先研究它的数值行为,然后再尝试对其进行复杂的处理,因此我正在寻找一种有效的方法来执行此操作。 我的函数采用给定6维numpy数组作为输入的float值。我最初尝试做的是: 首先,我创建了一个函数,该函数接受2个数组并生成一个包含两个数组中值的所有组合的数组 from numpy import * def comb(a,b): c = [] for i in a: for j in b: c.append(r_[i,j]) return c 然后我将reduce()其应用于同一数组的m个副本: def combs(a,m): return reduce(comb,[a]*m) 然后我像这样评估我的功能: values = combs(np.arange(0,1,0.1),6) for val in values: print F(val) 这有效,但是太慢了。我知道参数的空间很大,但这不应该太慢。在此示例中,我仅采样了10 6(一百万)个点,仅花费了15秒以上的时间便创建了数组values。 您知道使用numpy进行此操作的更有效的方法吗? F如果需要,我可以修改函数接受参数的方式。