Je suis le tissage mon code c en python pour accélérer la boucle:Comment accélérer l'accès au tableau multidimensionnel dans scipy.weave?
from scipy import weave
from numpy import *
#1) create the array
a=zeros((200,300,400),int)
for i in range(200):
for j in range(300):
for k in range(400):
a[i,j,k]=i*300*400+j*400+k
#2) test on c code to access the array
code="""
for(int i=0;i<200;++i){
for(int j=0;j<300;++j){
for(int k=0;k<400;++k){
printf("%ld,",a[i*300*400+j*400+k]);
}
printf("\\n");
}
printf("\\n\\n");
}
"""
test =weave.inline(code, ['a'])
Cela fonctionne tout bien, mais il est encore coûteuse lorsque le tableau est grand. Quelqu'un m'a suggéré d'utiliser a.strides au lieu du méchant "a [i * 300 * 400 + j * 400 + k]" Je ne comprends pas le document à propos .strides.
Toutes les idées
Merci à l'avance
Merci pour votre réponse: Mais je ne suis pas intéressé par la configuration ... Savez-vous comment accélérer la deuxième partie (code c)? Merci – Eminemya
Hm, désolé, je ne connais pas la réponse à cette question. – unutbu