L'ambiguïté dans les Pandas Dataframe / Tableau Numpy “axe” définition

J'ai été très confus sur la façon python axes sont définis, et qu'elles se réfèrent à un DataFrame de lignes ou de colonnes. Considérez le code ci-dessous:

>>> df = pd.DataFrame([[1, 1, 1, 1], [2, 2, 2, 2], [3, 3, 3, 3]], columns=["col1", "col2", "col3", "col4"])
>>> df
   col1  col2  col3  col4
0     1     1     1     1
1     2     2     2     2
2     3     3     3     3

Donc, si nous appelons df.mean(axis=1), nous allons obtenir une moyenne pour les lignes:

>>> df.mean(axis=1)
0    1
1    2
2    3

Cependant, si nous appelons df.drop(name, axis=1), nous avons fait supprimer une colonne, pas une ligne:

>>> df.drop("col4", axis=1)
   col1  col2  col3
0     1     1     1
1     2     2     2
2     3     3     3

Quelqu'un peut-il m'aider à comprendre ce qu'on entend par un "axe" dans les pandas/numpy/scipy?

Une note de côté, DataFrame.mean pourrait être défini de mal. Il est dit dans la documentation de DataFrame.moyenne que axis=1 est censé signifier une moyenne sur les colonnes, pas les lignes...

  • Pour une explication détaillée de l'alias, 'colonnes' et 'index'/'lignes' voir cette réponse ci-dessous.
  • C'est juste bizarre. L'axe doit être uniforme à travers le mean et la drop. Il faut non linéaire de la pensée à l'arrivée au comportement réel.
InformationsquelleAutor hlin117 | 2014-09-10