2017-06-12 9 views
2
import numpy as np 

c=[10,2000] # only two index for example 

horizontal=[] 
vertical=[] 

for i in range(0,c[0]): 
    for j in range(0, c[1]): 
     horizontal.append(j) 
     vertical.append(i) 

print horizontal 

Lorsque je travaille avec des tableaux et pour des boucles, cela prend trop de temps. Si je comprends bien, c'est perdre du temps à cause du type de données indéfini ("i" et "j"). Je veux définir le type de données en utilisant NumPy et accélérer les boucles de tableau.Appliquer Numpy à "pour boucles"

Comment puis-je utiliser NumPy pour ces "array for loops" ou existe-t-il une autre solution pour accélérer ces boucles?

Répondre

3

La façon la plus simple de le faire avec NumPy est np.mgrid qui crée un meshgrid:

vertical, horizontal = np.mgrid[0:c[0], 0:c[1]] 
vertical = vertical.ravel()  # make it 1D 
horizontal = horizontal.ravel() # make it 1D 
+0

Vous étiez rapide cette fois-ci! ;) – Divakar