Bonjour,

Je voudrais copier une liste dans une matrice type Numpy, seulement cela génére des erreurs, et quel que soit la méthode que je trouve cela ne marche pas !!


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# Allocation de la dimension de la matrice principale : ici de taille (143,111,1,4)
Nvar = 4 # nombre de variables
ldim = (143,111,1,Nvar)
msh = N.empty(tuple(ldim),N.double)
zones = []
# Fonction qui permet de lire des fichiers ASCI de données, ici la taille de zones est (41,56,1,4)
 zones = loadFmt(fich_dom)
 # indices de début pour mettre la matrice zones dans le bon endroit
i =102
j =55
k=0
a = zones.shape[0] # aka : 41
b = zones.shape[1] # b = 55
c = zones.shape[2] # c = 1
msh[i,i+a][j,j+b][k,k+c] = zones[0,a][0,b][0,c]
Mais cela ne marche pas !

Auriez vous une idée??

J'ai déjà essayé une méthode de boucle for (3 boucles ) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
for i in range(0,a):
     for j in range(0,b):
	  for k in range(0,c):
	       imsh = i + 102 -1
	       jmsh = j + 55 -1
	       kmsh = k + 0 -1
	       msh[imsh][jmsh][kmsh] = zones[i][j][k]
Et cela marche très bien , par contre cela prend plus de temps !! donc je veux éviter les boucles for au maximum !!

Merci d'avance.

M.