簡體   English   中英

在python中使用numpy生成范圍內的所有可能組合

[英]Generating all possible combinations in a range using numpy in python

我正在尋找一種有效的方法來使用numpy或任何更快的方法在一定范圍內生成所有可能的組合。 我試過了:

from numpy import *
from itertools import *

dt=dtype('i,i,i,i,i,i')
fromiter(combinations(range(10000000),6), dtype=dt, count=-1)

但是我遇到了內存錯誤,即使它可以正常工作,也可能需要永遠的時間才能完成。 我正在尋找不會重復的組合。 例如,如果我需要range(1,5)中的所有3個數字組合,我將得到(1、2、3),(1、2、4),(1、3、4),(2、3、4 )。

6個元素與您正在使用的范圍大約有1,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000個(9月1日)可能的組合。 您將永遠不會全部處理它們。 最好的辦法是使用迭代器以“惰性”方式處理它們:

for c in combinations(range(10000000),6):
    print(c)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM