我想创建一个Numpy数组,它由所有可能的组合组成。我有一些样本,它们可能有一组可能的值。目前我使用递归,但我正在寻找更快的方法来工作与大量的组合。可能的组合数量为(n个值)^个样本
import numpy as np
import itertools
samples=3
range1=range(1)
range2=range(20,101,10)
a=np.zeros((samples))
total=np.empty((0,samples))
limit=1000
def nested(samples,limit):
if samples>0:
for j in itertools.chain(range1, range2):
a[samples-1]=j
global total
total=np.vstack((total,a))
nested(samples-1,limit)
nested(samples, limit)
total=np.unique(total, axis=0)
print(total.shape)
在目前应用的递归方法中,构建一个有1M+个组合的数组需要花费大量的时间。
1条答案
按热度按时间zpgglvta1#
您可以使用
itertools.product()
执行以下操作: