【发布时间】:2015-11-09 15:26:46
【问题描述】:
我想获得 numpy.array 向量(或 pandas.Series)的所有 独特 组合。我使用了 itertools.combinations,但它非常慢。对于一个大小为 (1000,) 的数组,它需要很多小时。这是我使用 itertools 的代码(实际上我使用了组合差异):
def a(array):
temp = pd.Series([])
for i in itertools.combinations(array, 2):
temp = temp.append(pd.Series(np.abs(i[0]-i[1])))
temp.index=range(len(temp))
return temp
如你所见,没有重复!! sklearn.utils.extmath.cartesian 真的又快又好,但它提供了我不想要的重复!我需要在不使用 itertools 的情况下重写上述函数的帮助,并且对于大型向量需要更快的速度。
【问题讨论】:
-
这就是你想要的:stackoverflow.com/questions/1208118/… 如果是这样,我将作为副本关闭
-
否,因为它不提供独特的组合! itertools 本身很慢!
-
确保数组不能启动并屏蔽掉相等的值(对于它们自己/可能将它们作为特殊情况添加回来)?
-
如果你的意思是向量数组,它是唯一的,因为它的元素是随机的 float64 数字。其实我不明白你的建议!
-
另一个可能的解决方案是stackoverflow.com/questions/11144513/…
标签: numpy pandas combinations