Salut,
J'ai besoin de lire un certain nombre de fichiers qui contiennent des données différentes, puis de pouvoir y accéder afin de les traiter différemment.
une illustration simple :
J'ai 3 fichiers : data1 data2 et data3
data1 contient
0 1
2 3
data2 contient
4 5
6 7
8 9
data3 contient
10 11
12 13
14 15
16 17
18 19
j'ai une boucle qui me permet de parcourir mon arborescence et de lire data 1 2 et 3 successivement et qui me trace la colonne 2 en fonction de la colonne 1
Ce que j'aimerais c'est pouvoir stocker ces données dans un tableau à 3 dimensions (et plus généralement à N dimensions) :
DATA[1]=data1
DATA[2]=data2
DATA[3]=data3
Je suis habitué à coder en fortran qui permet de faire ça très simplement avec une simple boucle sur un indice. Mais en Python je ne m'en sors pas...
Pour être plus précis sur mon intention : pour chaque data : je vais devoir calculer une moyenne et un écart type, mais en considérant uniquement une partie des données. Par exemple dans data1 je prendrais les 2 lignes, alors que dans data3 je prendrais les 3 dernières.
L'exemple ci dessous correspond au tracé d'une courbe et à la sélection de la portion de courbe que je souhaite étudier. Je veux stocker les données "isoth" dans un tableau qui dépend d'une variable P. Quelque chose du genre isotherme(i) = isoth(P)
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 import pandas as pd import matplotlib.pyplot as plt %matplotlib widget # gca stands for 'get current axis' ax = plt.gca() isoth=pd.read_csv("{cwd}/numberH2O.dat".format(cwd=cwd), sep=" ", names=["time step", "number of H2O"]) isoth["time step"]=isoth["time step"]/1.e6 isoth.plot(x="time step", y=["number of H2O"], grid=True, ylim=(0),xlim=(0),ax=ax) sel=isoth.loc[isoth['time step'] >= 2] sel.plot(x="time step", y=["number of H2O"], grid=True, ylim=(0),xlim=(0),ax=ax) plt.legend(["number of H20", "fitted portion"]) mean=sel["number of H2O"].mean() std=sel["number of H2O"].std() plt.show()
Partager