2017-10-13 5 views
-3

J'espérais que quelqu'un pourrait faire la lumière sur un problème que j'ai. J'ai un seul tableau de variables:Besoin d'aide ID un algorithme numpy pour séparer un tableau basé sur la variable commune

[3,4,7,8,12,18,20,25,30,31,38,43,46,51,58,59] 

Et je voudrais savoir comment les séparer par un multiple/dénominateur commun/tout ce que vous appelleriez ... dire la variable commune est de 13 pour cette tableau, et je veux que les résultats soient n nombre de variables, par exemple:

[4,30,43,56] 
[7,20,46,59] 
[12,25,38,51] 

y at-il un algorithme qui peut faire quelque chose comme ça?

Répondre

1

Cela devrait résoudre votre requête. Remplacez le tableau et le nombre selon vos besoins.

def run(): 
    given_array = [3,4,7,8,12,18,20,25,30,31,38,43,46,51,58,59] 
    number = 13 

    final_result = [] 

    for e in given_array: 
     d = e 
     intermediate_array = [] 
     for f in given_array: 
      if e not in intermediate_array: 
       intermediate_array.append(e) 
      d = d+number 
      if d in given_array: 
       intermediate_array.append(d) 
       given_array.remove(d) 
     if intermediate_array and len(intermediate_array) > 1: 
      final_result.append(intermediate_array) 
    print final_result 


if __name__ == '__main__': 
    run() 
1

Le plus proche de la façon dont je comprends votre question est que les nombres devraient être groupés par le reste de la division par n. (dans).

input=[3,4,7,8,12,18,20,25,30,31,38,43,46,51,58,59] 
n=13 

result_dict = dict(zip(range(n),[[]]*n)) 
for i in input: 
    result_dict[i%n] = result_dict[i%n] + [i] 

{0: [], 
1: [], 
2: [], 
3: [3], 
4: [4, 30, 43], 
5: [18, 31], 
6: [58], 
7: [7, 20, 46, 59], 
8: [8], 
9: [], 
10: [], 
11: [], 
12: [12, 25, 38, 51]}