Bonjour à tous,

Est-il possible d'appliquer la fonction squeeze sur plusieurs "niveaux" ?
Je n'ai pas trouvé beaucoup d'infos ou d'exemples sur cette fonction et je ne sais donc pas si cette dernière peut faire ce que j'espère réaliser.

Néanmois voici mon travail :

D'abord je définis une fonction pour récupérer des données :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
def LoadPressureFile(fileName, format='fmt_tp'):
        varNameList, varArrayList = elsa_io.readAll(fileName, format)
        varNameList = list(varNameList)
        varArrayList = list(varArrayList)
 
        pId = varNameList.index('psta')
        pArray = varArrayList[pId]
 
        pArray = n.squeeze(pArray)
        pArray = pArray.transpose()
 
        return pArray
Ne prettez pas attention à la fonction elsa_io.readAll, elle est propre à un module utilisée dans le bureau gérant les données.
Même si c'est justement ce que me ressort cette fonction qui pose problème, enfin le format de sortie.

Suite à ça, voici le code qui me permet de récolter les données dans plusieurs fichiers :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
pressureFileList = glob.glob(fileTpl)
pressureFileList.sort()
nbFiles = len(pressureFileList)
 
print "\nThere are %d pressure files" % nbFiles
 
SNAPS = []
 
for pFile in pressureFileList:
        SNAPS.append(LoadPressureFile(pFile))
Et la matrice de sortie SNAPS est sous la forme d'une liste :

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
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
[array([[[ 97140.5 ,  97140.51,  97139.95, ...,  93987.8 ,  92973.78,
          91187.56]],
 
       [[ 97196.96,  97197.02,  97196.84, ...,  93993.85,  92997.35,
          91227.4 ]],
 
       [[ 97404.72,  97404.78,  97405.02, ...,  93943.47,  92983.45,
          91244.9 ]],
 
       ..., 
       [[ 98095.57,  98095.5 ,  98095.91, ...,  93868.83,  92940.74,
          91233.74]],
 
       [[ 97860.86,  97860.79,  97861.02, ...,  93932.82,  92956.33,
          91202.57]],
 
       [[ 97578.82,  97578.78,  97578.47, ...,  93949.17,  92955.69,
          91182.89]]]), array([[[ 96611.84,  96611.86,  96611.32, ...,  93396.93,  92461.5 ,
          90836.49]],
 
       [[ 96704.29,  96704.33,  96704.14, ...,  93417.2 ,  92455.28,
          90803.57]],
 
       [[ 96974.75,  96974.76,  96975.01, ...,  93387.47,  92383.68,
          90705.25]],
 
       ..., 
       [[ 97699.44,  97699.49,  97699.68, ...,  93240.96,  92543.91,
          91162.51]],
 
       [[ 97434.56,  97434.59,  97434.85, ...,  93314.83,  92534.85,
          91051.97]],
 
       [[ 97127.78,  97127.74,  97127.9 , ...,  93343.58,  92535.67,
          91013.58]]]), array([[[ 96716.3 ,  96715.91,  96716.06, ...,  93516.86,  92497.61,
          90854.72]],
 
       [[ 96794.29,  96794.03,  96794.44, ...,  93534.19,  92489.78,
          90820.37]],
 
       [[ 97053.3 ,  97053.22,  97053.74, ...,  93530.16,  92450.83,
          90753.64]],
 
       ..., 
       [[ 97760.55,  97760.52,  97760.86, ...,  93374.37,  92536.03,
          91092.34]],
 
       [[ 97509.33,  97509.29,  97509.51, ...,  93429.11,  92520.88,
          90988.91]],
 
       [[ 97206.71,  97206.65,  97206.43, ...,  93440.33,  92514.02,
          90951.19]]]), array([[[ 96865.29,  96865.24,  96864.72, ...,  93696.33,  92714.81,
          91162.37]],
 
       [[ 96925.96,  96925.99,  96925.86, ...,  93716.78,  92724.93,
          91160.53]],
 
       [[ 97167.15,  97167.22,  97167.53, ...,  93692.99,  92684.55,
          91107.86]],
 
       ..., 
       [[ 97881.21,  97881.2 ,  97881.53, ...,  93530.51,  92722.89,
          91331.12]],
 
       [[ 97655.16,  97655.05,  97655.16, ...,  93604.55,  92726.61,
          91263.84]],
 
       [[ 97365.11,  97364.92,  97364.55, ...,  93612.97,  92726.98,
          91245.35]]]), array([[[ 97337.61,  97337.59,  97337.06, ...,  92643.35,  91324.89,
          89265.17]],
 
       [[ 97409.42,  97409.5 ,  97409.36, ...,  92652.24,  91340.75,
          89285.13]],
 
       [[ 97640.97,  97641.06,  97641.35, ...,  92570.1 ,  91332.58,
          89345.26]],
 
       ..., 
       [[ 98262.81,  98262.8 ,  98263.13, ...,  92527.9 ,  91211.1 ,
          89153.71]],
 
       [[ 98046.43,  98046.36,  98046.47, ...,  92610.52,  91262.95,
          89178.31]],
 
       [[ 97782.03,  97781.89,  97781.53, ...,  92631.16,  91283.51,
          89196.63]]]), array([[[ 97163.25,  97163.26,  97162.73, ...,  93910.05,  93171.52,
          91826.26]],
 
       [[ 97252.96,  97253.03,  97252.85, ...,  93921.54,  93189.34,
          91848.38]],
 
       [[ 97505.18,  97505.23,  97505.5 , ...,  93907.76,  93176.19,
          91832.42]],
 
       ..., 
       [[ 98157.19,  98157.24,  98157.66, ...,  93790.03,  93171.59,
          91949.53]],
 
       [[ 97897.01,  97897.01,  97897.29, ...,  93836.43,  93170.71,
          91895.35]],
 
       [[ 97598.26,  97598.14,  97597.92, ...,  93847.09,  93158.79,
          91855.87]]]), array([[[ 96868.83,  96868.83,  96868.25, ...,  92886.81,  92076.97,
          90464.81]],
 
       [[ 96948.98,  96949.04,  96948.85, ...,  92897.78,  92094.25,
          90487.65]],
 
       [[ 97209.08,  97209.14,  97209.4 , ...,  92886.18,  92096.83,
          90509.42]],
 
       ..., 
       [[ 97893.87,  97893.85,  97894.19, ...,  92787.05,  92087.74,
          90595.56]],
 
       [[ 97650.36,  97650.29,  97650.47, ...,  92818.58,  92088.05,
          90552.28]],
 
       [[ 97353.05,  97352.91,  97352.71, ...,  92822.92,  92072.59,
          90510.37]]]), array([[[ 97232.5 ,  97232.45,  97231.78, ...,  92932.8 ,  91765.06,
          89734.3 ]],
 
       [[ 97339.96,  97339.99,  97339.74, ...,  92929.88,  91774.89,
          89752.45]],
 
       [[ 97614.49,  97614.54,  97614.8 , ...,  92849.07,  91766.23,
          89807.42]],
 
       ..., 
       [[ 98196.33,  98196.33,  98196.62, ...,  92843.99,  91653.98,
          89617.62]],
 
       [[ 97993.04,  97993.07,  97993.36, ...,  92915.2 ,  91705.85,
          89646.91]],
 
       [[ 97803.89,  97803.95,  97804.06, ...,  92936.51,  91727.23,
          89664.69]]]), array([[[ 97048.16,  97048.2 ,  97047.4 , ...,  94117.94,  91967.2 ,
          89155.34]],
 
       [[ 97126.03,  97126.12,  97125.73, ...,  94101.81,  91959.21,
          89167.56]],
 
       [[ 97378.92,  97379.  ,  97379.18, ...,  93958.9 ,  91906.42,
          89235.96]],
 
       ..., 
       [[ 98055.35,  98055.42,  98055.61, ...,  93973.57,  91870.38,
          89042.53]],
 
       [[ 97818.6 ,  97818.6 ,  97818.75, ...,  94089.25,  91923.4 ,
          89057.86]],
 
       [[ 97534.64,  97534.47,  97534.43, ...,  94124.71,  91939.71,
          89064.21]]]), array([[[ 97318.62,  97318.61,  97318.09, ...,  97053.69,  94917.41,
          92112.02]],
 
       [[ 97394.89,  97394.96,  97394.8 , ...,  97028.16,  94905.68,
          92117.18]],
 
       [[ 97630.29,  97630.37,  97630.65, ...,  96885.48,  94837.1 ,
          92131.31]],
 
       ..., 
       [[ 98266.48,  98266.47,  98266.81, ...,  96836.75,  94802.52,
          92081.35]],
 
       [[ 98034.66,  98034.6 ,  98034.78, ...,  96984.18,  94873.47,
          92085.23]],
 
       [[ 97756.91,  97756.8 ,  97756.51, ...,  97030.35,  94900.24,
          92093.9 ]]])]
La fonction elsa_io énumérée plutôt, me sort donc une liste d'un np.array de liste, etc..

Si j'ai 10 fichiers, je voudrais que ma matrice de sortie soit :
[[124, 844, 4646], ..., [165165, 6516516, 61561]]
Avec ... étant les 8 autres sorties de fichiers.
J'essaye donc de "tronquer" l'arborescance de la liste principale mais je n'y arrive pas

J'espère être assez clair mais si c'est loin de l'être ^^