Comment stocker une matrice multidimensionnelle d'une dataframe avec pandas ?

21 septembre 2021    /    Viewed: 101    /    Comments: 0    /    Edit


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

Références


Card image cap
profile-image
Bazinga

Salut, je suis Ben.

J'ai développé ce site web à partir de zéro avec Django pour partager avec tout le monde mes notes. Si vous avez des idées ou des suggestions pour améliorer le site, faites le moi savoir ! (vous pouvez me contacter via le formulaire de la page d'accueil). Merci!