0% ont trouvé ce document utile (0 vote)
26 vues2 pages

Introduction à la POO et NumPy en Python

Le document traite de la programmation orientée objet (POO) en Python, en se concentrant sur les descripteurs avancés, ainsi que sur les bibliothèques Matplotlib et Pandas. Il explique comment utiliser des descripteurs pour contrôler l'accès aux attributs d'objets, et fournit des exemples de fonctions et d'usage pour Matplotlib et Pandas. Enfin, il aborde des concepts tels que les méthodes magiques, la gestion des exceptions et les opérations sur les tableaux NumPy.

Transféré par

hanane aissaoui
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
26 vues2 pages

Introduction à la POO et NumPy en Python

Le document traite de la programmation orientée objet (POO) en Python, en se concentrant sur les descripteurs avancés, ainsi que sur les bibliothèques Matplotlib et Pandas. Il explique comment utiliser des descripteurs pour contrôler l'accès aux attributs d'objets, et fournit des exemples de fonctions et d'usage pour Matplotlib et Pandas. Enfin, il aborde des concepts tels que les méthodes magiques, la gestion des exceptions et les opérations sur les tableaux NumPy.

Transféré par

hanane aissaoui
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd

La POO en python : Les Descripteurs Avancés en Python : La bibliothèque Matplotlib : La bibliothèque Pandas :

class Livre: Les descripteurs sont des classes spéciales qui Fonction Usage Pour créer un dataframe à partir des fichiers de donnees :
def __init__(self, titre, pages): permettent de contrôler l'accès aux attributs d'un [Link](x, y) Trace une courbe *pandas.read_excel() ou pd.read_excel() : pour les fichiers
[Link] = titre objet grâce aux méthodes suivantes : (.xls).
[Link](labels, values) Diagramme à barres
[Link] = pages __get__(self, instance, owner) → Intercepte la *pd.read_csv() : pour les fichiers (.csv).
lecture d'un attribut. [Link](data, bins) Histogramme
def __str__(self): *pd.read_json() : pour les fichiers (.json).
__set__(self, instance, value) → Intercepte l'écriture [Link](x, y) Nuage de points
return f"Livre: {[Link]}" *pd.read_html(), pd.read_sql(), pd.read_....() ….
def __repr__(self): d'un attribut. Diagramme circulaire *C’est possible aussi de créer un DataFrame à partir d’un
[Link](sizes, labels)
__delete__(self, instance) → Intercepte la (camembert)
return f"Livre(titre='{[Link]}', pages={[Link]})" tableau : df =[Link]([1, 2, 3, 4, …
suppression d'un attribut [Link](), [Link](), Ajouter titres et
def __len__(self): La sélection :
Ils permettent de centraliser la logique [Link]() labels
return [Link] *df[‘column_name’]
d'accès aux attributs et sont très utiles pour
[Link]() Affiche la grille *df[num_row_start :num_row_end]
les validations de données
repr(obj) ou Représentation technique class TextNonVide: [Link]() Affiche la légende *[Link][num_row, ['column_name', 'column_name'], …]
__repr__
console (souvent pour debug) def __init__(self,text): NumPy : [Link]() Affiche la figure La modification :
__eq__ obj1 == obj2 Comparer deux objets [Link]=text Attributs : [Link]("[Link]") Sauvegarde la figure *[Link][num_row, "column_name"] = value
Retourner une "longueur" def __get__(self,instance,owner): * shape : Un tuple d'entiers indiquant le nombre dans un fichier Filtrer les données :
__len__ len(obj) return instance.__dict__.get([Link],None) d'éléments stockés le long de chaque dimension du * df[df[‘column_name’] == ‘value’], vous pouvez utilizer >, >=, <,
personnalisée [Link](data) Image/Heatmap
@property def __set__(self,instance,value): tableau. Pour un tableau 2D avec N lignes et M [Link](data, cmap='hot', interpolation='nearest') <=, et !=,
Permet de contrôler l'accès en lecture et en écriture d’un if value == '': colonnes, la forme sera (N,M). La longueur de ce utiliser le caractère & avec les parenthèses pour plusieurs
attribut, comme en Java avec get/set. raise ValueError("le text ne doit pas être tuple de forme est donc égale au nombre conditions, exemple :
vide") de dimensions du tableau. df[(df['column_name'] == 'value') & (df['column_name'] ==
instance.__dict__[[Link]]=value * size : le nombre d’elements de tableau. 'value')]
class Personne:
*ndim : Le nombre d'axes (dimensions/lignes) du La création de nouvelles colonnes à partie de colonnes
def __init__(self, nom):
class Utilisateur: tableau existantes :
self._nom = nom nom=TextNonVide("nom") df[‘column_name’] = df[‘column_name’] opération
prenom=TextNonVide("prenom") df[‘column_name’],
@property def __init__(self,nom,prenom):
def nom(self): l’opération peut être n’importe quelle opération arithmétique
[Link]=nom Manipulation des données :
return self._nom [Link]=prenom
* [Link]() : Afficher le début du DataFrame.
@[Link] *[Link]() : Afficher la fin du DataFrame
u=Utilisateur("aissaoui","hanane")
def nom(self, valeur): * [Link] : Afficher les noms des colonnes
print([Link])
if not valeur: print([Link]) Méthodes : * [Link]() : Statistiques rapides
raise ValueError("Le nom ne peut pas être vide.") [Link]="" [Link]() : Les tableaux NumPy peuvent être * [Link]([’column’, ‘column’, …]) : Eliminer certaines colonnes
self._nom = valeur définis à l'aide de séquences Python telles que des * df.[‘column’].value_counts() : Compter les répétitions
Exeptions : listes et des tuples. Les listes et les tuples sont * [Link]([‘column’]) : Analyse par groupe
Python stocke les attributs de l'instance dans un dictionnaire Exception Description définis à l'aide de [...] et (...), respectivement. Les * [Link](valeur_par_defaut) : compléter les données
interne __dict__. On peut voir cela avec : ZeroDivisionError listes et les tuples peuvent définir la création de manquants par une valeur par défaut
Division par zéro
print(v ._ dict_) ndarray * [Link]() : Eliminer les lignes dans lesquelles il manque
TypeError Mauvais type de donnée
[Link](nb_elt) : Renvoie un nouveau des données.
ValueError Valeur invalide tableau de forme et de type donnés, rempli de * Le trie : df.sort_values(by="column_name")
{'marque': 'Tesla', 'modele' : 'Model S', 'couleur': 'Rouge' }
IndexError Index hors limite d'une liste zéros. Cette fonction prend comme argument la * Applique rune function sur une colonne :
KeyError Clé inexistante dans un dictionnaire forme du tableau df['column_name'].apply(lambda x
__slots__ optimise la mémoire et empêche la création
AttributeError Attribut inexistant [Link](start,stop,pas) : Cette fonction : opération), exemple : df['column_name'].apply(lambda x : x
dynamique d'attributs. Utile pour les classes avec beaucoup
permet de construire un array à une dimension de * 2)
d'instances. ImportError Échec d’importation
manière simple similaire à la fonction range()
FileNotFoundError Fichier introuvable [Link] ((nb_bloc,nb_lig,nb_col),val) : df[ df['sex'] == 'male' ]
RuntimeError Erreur d'exécution générique Renvoie un nouveau tableau de forme donnés,
rempli avec une => Cela renvoie un nouveau DataFrame contenant uniquement
valeur donnée
les lignes où sex == 'male'.
[Link] ((debut,fin,nb_elt) : Est une
# 8. Afficher le nombre de passagers de sexe masculin
méthode qui permet de créer un tableau a une
nb_hommes = df[df['sex'] == 'male'].shape[0] (nb ligne)
dimension, et dans laquelle on va préciser un point
de début, un point de fin et le nombre d'éléments
qu'on veut avoir dans notre tableau, et ces
def lire_fichier(fichier): éléments sont régulièrement espacés.
try: [Link] (nb_lig,nb_col,nb_bloc) : Donne
fichier = open(fichier, 'r') une nouvelle forme à un tableau sans modifier ses
contenu = [Link]() données
Méthodes magiques : __getattr__, __setattr__, __delattr__ return contenu [Link] (axis) : renvoie la somme des
except FileNotFoundError: éléments d’un tableau
__getattr__(self, attr) : Déclenchée uniquement lorsqu'on print(f"Erreur : Le fichier '{fichier}' n'existe # Somme des colonnes (axis=0) axis=1 pr ligne
pas.") somme_colonnes = [Link](tableau, axis=0)
essaie d'accéder à un attribut
return None [Link]() : Renvoie à la fois un tableau qui
non défini.
finally: contient les diffèrent entités présentes dans notre
def __getattr__(self, name):
print("fermeture du fichier") tableau et le nombre de répétitions pour chacune
return f"{name} est inconnu"
__setattr__(self, attr, value) : Intercepte toutes les affectations de ces entités.
d'attributs, même celles déjà définies. uniques, counts = [Link](tab,
return_counts=True)
print(uniques[counts == 1])
# Valeurs communes
communes = np.intersect1d(a, b)
Méthode/Fonction Rôle
On utilise super().__setattr__(attr, value) pour éviter une boucle [Link](n) Matrice identité n × n
infinie Nombres aléatoires
[Link](dims)
uniformes entre 0 et 1
[Link](dims) Nombres aléatoires suivant
une distribution normale
[Link](a, b, Entiers aléatoires entre a et
size) b
[Link](nb_lig,nb_elt_pr_chaque_lig)
[Link](0, 5, 10) de NumPy génère un
tableau de 10 nombres aléatoires tirés d'une
distribution uniforme entre 0 et 5.

Vous aimerez peut-être aussi