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 np
data = 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 pd
iterables = [[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 2
i j
0 0 63 35 74
1 28 69 48
2 25 19 33
1 0 51 23 28
1 40 76 0
2 10 48 82
2 0 51 55 7
1 12 26 91
2 1 73 31