Exemples de comment stocker une matrice multidimensionnelle d'une dataframe avec pandas:
Créer une matrice 3D avec numpy
Considérons la matrice 3D suivante avec les indices i,j,k créée avec numpy
import numpy as npdata = np.random.randint(100,size=(3,3,3))print(data)
donne par exemple
[[[63 35 74][28 69 48][25 19 33]][[51 23 28][40 76 0][10 48 82]][[51 55 7][12 26 91][ 1 73 31]]]
Note: pour obtenir la valeur correspondant à i = 1, j = 2 et k = 0, une solution est de faire :
print(data[1,1,0])
donne ici
40
Stocker une matrice multidimensionnelle dans une dataframe
Une solution pour stocker une matrice multidimensionnelle dans une dataframe consiste d'abord à "resape" la matrice initiale en une matrice 2D :
data = data.reshape(9,3)print(data)
donne
[[63 35 74][28 69 48][25 19 33][51 23 28][40 76 0][10 48 82][51 55 7][12 26 91][ 1 73 31]]
et d'utiliser pandas MultiIndex:
import pandas as pditerables = [[0,1,2], [0,1,2]]index = pd.MultiIndex.from_product(iterables, names=['i', "j"])df = pd.DataFrame(data=data, index=index, columns = [0,1,2])df = df.rename_axis("k", axis="columns")print(df)
donne alors
k 0 1 2i j0 0 63 35 741 28 69 482 25 19 331 0 51 23 281 40 76 02 10 48 822 0 51 55 71 12 26 912 1 73 31
