Revision sheet: Introduction aux Fonctions et Manipulations NumPy

Plan du Cours

  1. Fonctions en Python
  2. Fonctions lambda anonymes
  3. BibliothĂšques externes Python
  4. Importation de bibliothĂšques
  5. NumPy : création et manipulation
  6. GĂ©nĂ©ration d’arrays NumPy
  7. Manipulations d’arrays
  8. AccÚs et modification éléments
  9. Génération de nombres aléatoires
  10. Fonctions mathématiques NumPy
  11. Statistiques descriptives

1. Fonctions en Python

Notions clés & Définitions

Fonction
Selon RODOLPHE GONZALÈS (source) : une fonction est un bloc de code spĂ©cialisĂ© pour une tĂąche spĂ©cifique. Elle constitue une unitĂ© autonome qui peut ĂȘtre appelĂ©e Ă  plusieurs reprises dans un programme pour exĂ©cuter une opĂ©ration prĂ©cise. La fonction permet de structurer le code en segments modulaires, facilitant la comprĂ©hension, la maintenance et la rĂ©utilisation.

Argument
D’aprĂšs RODOLPHE GONZALÈS (source) : un argument est une valeur d’entrĂ©e fournie Ă  une fonction lors de son appel. Ces valeurs sont valables uniquement Ă  l’intĂ©rieur de la fonction, c’est-Ă -dire qu’elles ne sont pas accessibles en dehors de celle-ci une fois la fonction exĂ©cutĂ©e. Les arguments permettent de transmettre des donnĂ©es Ă  la fonction pour qu’elle puisse effectuer sa tĂąche en utilisant ces donnĂ©es.

ParamĂštre
RODOLPHE GONZALÈS (source) : les paramĂštres sont les variables dĂ©clarĂ©es dans la dĂ©finition d’une fonction, reprĂ©sentant les valeurs que la fonction attend pour fonctionner. En pratique, ils sont des « espaces rĂ©servĂ©s » qui seront remplacĂ©s par des arguments lors de l’appel de la fonction. La distinction entre paramĂštre et argument est que le paramĂštre est la variable dans la dĂ©finition, tandis que l’argument est la valeur concrĂšte passĂ©e lors de l’appel.

Retour (return)
D’aprĂšs RODOLPHE GONZALÈS (source) : le retour est le rĂ©sultat ou les rĂ©sultats qu’une fonction fournit aprĂšs son exĂ©cution, via la commande « return ». La commande « return » permet de renvoyer une ou plusieurs valeurs Ă  l’endroit oĂč la fonction a Ă©tĂ© appelĂ©e, ce qui permet d’utiliser ces rĂ©sultats dans la suite du programme.

Réutilisabilité
Selon RODOLPHE GONZALÈS (source) : la rĂ©utilisabilitĂ© d’une fonction dĂ©signe sa capacitĂ© Ă  ĂȘtre utilisĂ©e plusieurs fois dans diffĂ©rents contextes ou programmes sans avoir Ă  la redĂ©finir. Elle est essentielle pour modulariser le code, rĂ©duire la duplication, et faciliter la maintenance en centralisant une opĂ©ration spĂ©cifique dans une seule unitĂ© de code.

Points essentiels

Une fonction est un bloc de code spĂ©cialisĂ© pour une tĂąche spĂ©cifique. Elle sert Ă  organiser le programme en segments modulaires, ce qui facilite la comprĂ©hension et la gestion du code. Les fonctions prennent le plus souvent des valeurs d’entrĂ©e, appelĂ©es arguments, qui sont des donnĂ©es valables uniquement Ă  l’intĂ©rieur de la fonction. Ces arguments sont transmis Ă  la fonction lors de son appel et sont utilisĂ©s pour effectuer la tĂąche assignĂ©e. La fonction peut ensuite retourner un ou plusieurs rĂ©sultats grĂące Ă  la commande « return ». Ces rĂ©sultats sont renvoyĂ©s Ă  l’endroit oĂč la fonction a Ă©tĂ© appelĂ©e, permettant ainsi de rĂ©utiliser ces rĂ©sultats dans d’autres parties du programme. La capacitĂ© Ă  dĂ©finir des fonctions rĂ©utilisables est fondamentale pour modulariser le code et optimiser son efficacitĂ©.

À retenir

Les fonctions en Python sont des blocs de code spĂ©cialisĂ©s permettant d’effectuer une tĂąche prĂ©cise. Leur rĂŽle essentiel est de faciliter la modularitĂ© et la rĂ©utilisabilitĂ© du code, en utilisant des arguments pour transmettre des donnĂ©es et « return » pour renvoyer les rĂ©sultats.

2. Fonctions lambda anonymes

Notions clés & Définitions

Fonction lambda
Une fonction lambda est une fonction dĂ©finie sans utiliser le mot-clĂ© def, ce qui la rend anonyme. Elle est conçue pour effectuer une tĂąche simple et peut ĂȘtre créée en une seule ligne. Selon RODOLPHE GONZALÈS, une fonction lambda est une fonction particuliĂšre qui n’a pas besoin d’ĂȘtre nommĂ©e avec def, permettant ainsi une dĂ©finition rapide et concise.

Fonction anonyme
Une fonction anonyme est une fonction qui n’a pas de nom explicite. Elle est gĂ©nĂ©ralement utilisĂ©e pour des opĂ©rations simples et temporaires, souvent passĂ©es directement comme argument Ă  d’autres fonctions. La fonction lambda en est un exemple typique, car elle est créée sans nom et utilisĂ©e immĂ©diatement.

Expression lambda
L’expression lambda dĂ©signe la syntaxe spĂ©cifique permettant de dĂ©finir une fonction lambda. Elle consiste en le mot-clĂ© lambda, suivi des paramĂštres, puis d’un double point : et de l’expression qui constitue le corps de la fonction. Par exemple : lambda x: x + 1.

Fonction en une ligne
Une fonction en une ligne est une fonction dont tout le corps est contenu dans une seule instruction. Les fonctions lambda sont un exemple de telles fonctions, permettant d’écrire rapidement des opĂ©rations simples sans nĂ©cessiter de bloc de code Ă©tendu.

Points essentiels

Les fonctions lambda sont dĂ©finies sans utiliser def, ce qui leur confĂšre le statut d’anonymes. Elles sont particuliĂšrement utiles pour des fonctions simples qui doivent ĂȘtre intĂ©grĂ©es directement comme arguments dans d’autres fonctions, Ă©vitant ainsi la nĂ©cessitĂ© de dĂ©finir une fonction complĂšte avec un nom. Leur principal avantage rĂ©side dans leur capacitĂ© Ă  Ă©crire des fonctions en une seule ligne, ce qui facilite la concision et la clartĂ© du code. Par exemple, dans le contexte d’un tri, on peut utiliser une lambda pour spĂ©cifier la clĂ© de tri : liste.sort(key = lambda x: x[position]). Cette simplicitĂ© d’utilisation en fait un outil pratique pour des opĂ©rations rapides et efficaces.

À retenir

Les fonctions lambda sont un outil pratique pour Ă©crire rapidement des fonctions simples et anonymes intĂ©grĂ©es, permettant d’amĂ©liorer la concision et la lisibilitĂ© du code en Ă©vitant la dĂ©finition formelle de fonctions complĂštes.

3. BibliothĂšques externes Python

Notions clés & Définitions

  • RODOLPHE GONZALÈS : voir section 1

Module externe : Composant individuel d’une bibliothĂšque externe, souvent constituĂ© d’un fichier unique ou d’un ensemble de fichiers regroupĂ©s. Un module peut contenir des fonctions, des classes ou des objets, et il est destinĂ© Ă  ĂȘtre importĂ© dans un script Python pour en exploiter les fonctionnalitĂ©s. La distinction entre bibliothĂšque et module est que la bibliothĂšque regroupe plusieurs modules liĂ©s entre eux.

Fonctions prĂ©programmĂ©es : Fonctions qui ont Ă©tĂ© Ă©crites Ă  l’avance dans une bibliothĂšque ou un module, permettant d’effectuer des opĂ©rations complexes ou courantes sans avoir Ă  les coder manuellement. Ces fonctions sont testĂ©es, optimisĂ©es, et prĂȘtes Ă  l’emploi, ce qui accĂ©lĂšre le dĂ©veloppement.

RĂ©utilisation de code : Pratique consistant Ă  utiliser des blocs de code dĂ©jĂ  existants (comme ceux fournis par des bibliothĂšques externes) dans diffĂ©rents programmes ou projets, afin d’éviter de réécrire les mĂȘmes fonctionnalitĂ©s. La rĂ©utilisation de code permet d’économiser du temps, d’assurer la fiabilitĂ© et de standardiser les opĂ©rations.

Points essentiels

Les bibliothĂšques externes contiennent des fonctions et objets dĂ©jĂ  programmĂ©s pour rĂ©utilisation. Elles offrent des outils spĂ©cialisĂ©s qui Ă©vitent de devoir réécrire des fonctions complexes et frĂ©quemment utilisĂ©es. Par exemple, des bibliothĂšques populaires telles que NumPy, Pandas, GeoPandas ou Matplotlib proposent des fonctionnalitĂ©s avancĂ©es pour la manipulation de donnĂ©es, la visualisation ou la gĂ©olocalisation. Ces bibliothĂšques sont si rĂ©pandues qu’elles sont souvent prĂ©-installĂ©es dans des environnements comme Google Colab, ce qui facilite leur importation et leur utilisation immĂ©diate.

Pour utiliser une bibliothĂšque externe, il faut l’importer dans le script Python. La syntaxe courante est : import nom, permettant d’accĂ©der Ă  toutes les fonctions et objets de la bibliothĂšque. Il est aussi possible d’attribuer un alias Ă  la bibliothĂšque lors de l’importation, par exemple : import nom as alias, ce qui simplifie la rĂ©fĂ©rence aux fonctions dans le code, notamment pour des bibliothĂšques avec des noms longs.

Les bibliothĂšques de programmation Python jouent un rĂŽle crucial en fournissant des outils spĂ©cialisĂ©s pour le stockage, la transformation, la visualisation, l’analyse, la modĂ©lisation, ou encore la connexion Ă  des bases de donnĂ©es externes. Elles permettent ainsi d’étendre considĂ©rablement les capacitĂ©s de Python sans devoir rĂ©inventer la roue Ă  chaque fois.

À retenir

Les bibliothĂšques externes sont essentielles pour enrichir Python avec des fonctions et objets dĂ©jĂ  programmĂ©s, facilitant la manipulation de donnĂ©es, la visualisation et la connexion Ă  des systĂšmes externes. Leur utilisation permet d’étendre rapidement et efficacement les capacitĂ©s du langage sans avoir Ă  dĂ©velopper toutes les fonctionnalitĂ©s soi-mĂȘme.

4. Importation de bibliothĂšques

Notions clés & Définitions

Importation
L'importation dĂ©signe l'action d'inclure une bibliothĂšque ou un module dans un programme Python afin d'utiliser ses fonctionnalitĂ©s. Selon le contenu source, l'importation permet de charger en mĂ©moire une bibliothĂšque pour accĂ©der Ă  ses fonctions, classes ou variables. Elle se rĂ©alise gĂ©nĂ©ralement avec la syntaxe import nom ou from nom import fct1, fct2. La bibliothĂšque ainsi importĂ©e devient accessible dans le script, mais elle doit ĂȘtre chargĂ©e en mĂ©moire, ce qui peut avoir des implications sur la gestion mĂ©moire du programme.

Alias (aliasing)
L'alias, ou aliasing, consiste Ă  donner un nom raccourci ou diffĂ©rent Ă  une bibliothĂšque lors de son importation. Cela se fait en utilisant la syntaxe import nom as alias. Par exemple, import numpy as np. L'alias permet de simplifier l'Ă©criture du code en Ă©vitant de rĂ©pĂ©ter un nom long ou complexe, tout en conservant l'accĂšs Ă  toutes les fonctionnalitĂ©s de la bibliothĂšque. Il est arbitraire, c’est-Ă -dire que l’utilisateur choisit librement le nom de l’alias.

from-import
La syntaxe from nom import fct1, fct2 permet d'importer uniquement certaines fonctions ou Ă©lĂ©ments spĂ©cifiques d'une bibliothĂšque, plutĂŽt que la bibliothĂšque entiĂšre. Cela Ă©vite de charger tout le module en mĂ©moire et permet d’accĂ©der directement aux fonctions sĂ©lectionnĂ©es sans prĂ©fixe. Par exemple, from math import sqrt, pi importe uniquement la fonction sqrt et la constante pi du module math. Les Ă©lĂ©ments Ă  importer doivent ĂȘtre sĂ©parĂ©s par des virgules.

Chargement en mémoire
Le chargement en mĂ©moire dĂ©signe le processus par lequel une bibliothĂšque ou un module est chargĂ© dans la mĂ©moire vive du systĂšme lors de son importation. Selon le contenu source, cette opĂ©ration implique que toutes les fonctions, classes et variables de la bibliothĂšque deviennent accessibles dans le programme. Cependant, cela peut impacter la gestion mĂ©moire, notamment si la bibliothĂšque est volumineuse ou si plusieurs modules sont importĂ©s simultanĂ©ment, ce qui peut ralentir ou alourdir l’exĂ©cution du programme.

Points essentiels

  • On importe une bibliothĂšque avec import nom ou import nom as alias. La premiĂšre mĂ©thode charge la bibliothĂšque sous son nom original, tandis que la seconde permet de lui attribuer un alias pour simplifier le code. Par exemple, import numpy as np est une pratique courante pour utiliser la bibliothĂšque NumPy de façon plus concise.

  • L'alias permet de raccourcir le nom de la bibliothĂšque dans le code, ce qui facilite la lecture et la saisie, surtout pour des bibliothĂšques longues ou frĂ©quemment utilisĂ©es. Par exemple, au lieu d’écrire numpy.array(), on peut Ă©crire np.array().

  • On peut importer uniquement certaines fonctions avec la syntaxe from nom import fct1, fct2. Cela limite la charge en mĂ©moire Ă  ce qui est nĂ©cessaire, Ă©vitant d’importer tout le module. Par exemple, from numpy import array importe uniquement la fonction array de NumPy.

  • L'importation charge la bibliothĂšque en mĂ©moire, ce qui peut impacter la gestion mĂ©moire. Si la bibliothĂšque est volumineuse ou si plusieurs modules sont importĂ©s, cela peut ralentir l’exĂ©cution ou augmenter l’utilisation de la mĂ©moire vive.

À retenir

MaĂźtriser les diffĂ©rentes mĂ©thodes d'importation permet d’optimiser l’utilisation des bibliothĂšques en Python, en choisissant entre importer tout le module ou uniquement ce qui est nĂ©cessaire, tout en utilisant des alias pour simplifier le code et mieux gĂ©rer la mĂ©moire.

5. NumPy : création et manipulation

Notions clés & Définitions

  • NumPy : voir section 3

Array (tableau) : structure centrale de NumPy, un tableau à n dimensions, conçu pour stocker et manipuler des données numériques. Contrairement aux listes Python, les arrays sont optimisés pour les opérations mathématiques et statistiques sur de grandes quantités de données.

HomogĂ©nĂ©itĂ© des types : propriĂ©tĂ© essentielle des arrays NumPy, qui stipule que tous les Ă©lĂ©ments d’un tableau doivent ĂȘtre du mĂȘme type. Cela permet d’optimiser la mĂ©moire et la vitesse de traitement, en Ă©vitant la gestion de types hĂ©tĂ©rogĂšnes comme dans les listes Python.

Mutable : caractĂ©ristique des arrays NumPy, signifiant qu’ils peuvent ĂȘtre modifiĂ©s aprĂšs leur crĂ©ation. On peut changer leur contenu, leur forme ou leur taille, contrairement aux tuples qui sont immuables.

Points essentiels

NumPy est une bibliothĂšque conçue pour remplacer les listes Python dans le contexte des matrices et des tableaux Ă  n dimensions. La structure centrale de NumPy est l’array, qui est un tableau Ă  n dimensions homogĂšne en type. Cela signifie que, contrairement aux listes Python, qui peuvent contenir des Ă©lĂ©ments de types variĂ©s (hĂ©tĂ©rogĂšnes), les arrays NumPy doivent contenir uniquement des Ă©lĂ©ments du mĂȘme type, ce qui facilite leur traitement et leur stockage.

Les arrays NumPy sont mutables, ce qui permet de modifier leur contenu aprĂšs leur crĂ©ation. Par exemple, on peut changer une valeur spĂ©cifique dans un tableau ou effectuer des opĂ©rations de modification en place. Cependant, cette mutabilitĂ© ne concerne pas la structure elle-mĂȘme, mais uniquement le contenu.

En plus de la simple structure de l’array, NumPy fournit une gamme d’outils pour manipuler ces tableaux : sĂ©lection d’élĂ©ments, insertion, changement de dimensions, concatĂ©nation, etc. Ces opĂ©rations permettent de transformer facilement la structure des donnĂ©es pour rĂ©pondre aux besoins spĂ©cifiques de chaque calcul ou analyse.

NumPy intĂšgre Ă©galement un ensemble de fonctions mathĂ©matiques et statistiques permettant d’effectuer des calculs directement sur les arrays. Ces fonctions sont optimisĂ©es pour la performance, ce qui rend NumPy particuliĂšrement adaptĂ© pour traiter de grands volumes de donnĂ©es numĂ©riques.

GrĂące Ă  ces capacitĂ©s, NumPy permet d’effectuer une variĂ©tĂ© d’actions, telles que la crĂ©ation de nouveaux tableaux, la modification de leur contenu, la gĂ©nĂ©ration de nombres alĂ©atoires, la rĂ©alisation d’opĂ©rations d’algĂšbre linĂ©aire ou de statistiques, le tout de maniĂšre performante et efficace.

À retenir

NumPy doit ĂȘtre considĂ©rĂ© comme un outil fondamental pour manipuler efficacement des donnĂ©es numĂ©riques structurĂ©es en tableaux homogĂšnes. Sa structure d’array, sa mutabilitĂ© et ses outils intĂ©grĂ©s en font une bibliothĂšque incontournable pour tout traitement numĂ©rique performant en Python.

6. GĂ©nĂ©ration d’arrays NumPy

Notions clés & Définitions

np.array : AUTEUR (date) : convertit une liste Python en array NumPy. Il s’agit d’une fonction permettant de transformer une liste ou une liste imbriquĂ©e en un objet de type array, facilitant ainsi la manipulation numĂ©rique et la rĂ©alisation d’opĂ©rations vectorielles ou matricielles.

np.arange : AUTEUR (date) : génÚre des séquences numériques avec un pas défini. Elle crée un array contenant une série de nombres espacés réguliÚrement, en spécifiant le début, la fin (exclue) et le pas entre chaque valeur.

np.zeros : AUTEUR (date) : crée un array prérempli de zéros. La taille de cet array est définie par un entier ou une tuple pour un array multidimensionnel.

np.ones : AUTEUR (date) : crée un array prérempli de uns. La taille est également définie par un entier ou une tuple pour un array multidimensionnel.

Array 2D : AUTEUR (date) : un array Ă  deux dimensions, pouvant ĂȘtre créé Ă  partir d’une liste imbriquĂ©e ou via des fonctions comme np.zeros((lignes, colonnes)). Il reprĂ©sente une matrice ou une grille de valeurs organisĂ©es en lignes et colonnes.

Points essentiels

  • np.array convertit une liste Python en array NumPy : cette opĂ©ration permet de passer d’une structure de donnĂ©es classique Ă  un format optimisĂ© pour le calcul numĂ©rique. Par exemple, une liste simple [1, 2, 3, 4] devient un array NumPy via np.array([1, 2, 3, 4]).

  • np.arange gĂ©nĂšre des sĂ©quences numĂ©riques avec un pas dĂ©fini : elle fonctionne comme la fonction range() en Python, mais retourne un array NumPy. Par exemple, np.arange(2, 10, 2) crĂ©e un array [2, 4, 6, 8]. Si le pas n’est pas prĂ©cisĂ©, il vaut 1 par dĂ©faut.

  • np.zeros et np.ones crĂ©ent des arrays prĂ©remplis de 0 ou de 1 : ces fonctions sont utiles pour initialiser des tableaux avant de leur assigner des valeurs. Par exemple, np.zeros(20) crĂ©e un array de 20 Ă©lĂ©ments tous Ă©gaux Ă  zĂ©ro, tandis que np.ones((3, 4)) crĂ©e une matrice 3x4 remplie de uns.

  • Les arrays 2D peuvent ĂȘtre créés Ă  partir de listes imbriquĂ©es ou via des fonctions comme np.zeros((lignes, colonnes)). La conversion d’une liste imbriquĂ©e en array 2D permet de reprĂ©senter une matrice, facilitant les opĂ©rations matricielles et l’algĂšbre linĂ©aire.

À retenir

Savoir crĂ©er et initialiser diffĂ©rents types d’arrays NumPy, qu’ils soient unidimensionnels ou multidimensionnels, est essentiel pour prĂ©parer efficacement les donnĂ©es Ă  manipuler dans des opĂ©rations numĂ©riques, statistiques ou algĂ©briques.

7. Manipulations d’arrays

Notions clés & Définitions

reshape
ODOLPHE GONZALÈS (date) : La fonction reshape permet de modifier la forme d’un array sans changer ses donnĂ©es. Elle crĂ©e une nouvelle vue de l’array avec une structure diffĂ©rente, en respectant le nombre total d’élĂ©ments. Par exemple, un array 1D de 16 Ă©lĂ©ments peut ĂȘtre transformĂ© en un array 2D de dimensions (4,4). La taille totale doit rester constante, c’est-Ă -dire que le produit des dimensions doit ĂȘtre Ă©gal Ă  la taille initiale.

shape
ODOLPHE GONZALÈS (date) : La propriĂ©tĂ© shape donne la taille de chaque dimension d’un array. Elle retourne un tuple indiquant le nombre d’élĂ©ments le long de chaque axe. Par exemple, pour un array 2D de 3 lignes et 4 colonnes, shape renverra (3, 4). Elle permet de connaĂźtre rapidement la structure d’un array.

vstack
ODOLPHE GONZALÈS (date) : La fonction vstack (vertical stack) permet de concatĂ©ner verticalement plusieurs arrays. Elle empile les arrays en ajoutant des lignes, ce qui augmente la dimension le long de l’axe 0. Par exemple, si on empile deux arrays de mĂȘme nombre de colonnes, le rĂ©sultat sera un array dont le nombre de lignes est la somme des lignes initiales.

hstack
ODOLPHE GONZALÈS (date) : La fonction hstack (horizontal stack) permet de concatĂ©ner horizontalement plusieurs arrays. Elle empile les arrays en ajoutant des colonnes, ce qui augmente la dimension le long de l’axe 1. Pour que cette opĂ©ration soit possible, les arrays doivent avoir le mĂȘme nombre de lignes.

ndim
ODOLPHE GONZALÈS (date) : La propriĂ©tĂ© ndim indique le nombre de dimensions d’un array. Par exemple, un array 1D a ndim=1, un array 2D a ndim=2, etc. Elle permet de connaĂźtre la complexitĂ© structurelle de l’array.

Points essentiels

  • reshape modifie la forme d’un array sans changer ses donnĂ©es. La nouvelle forme doit respecter la contrainte que le produit des dimensions doit ĂȘtre Ă©gal Ă  la taille totale de l’array initial. Par exemple, un array de 16 Ă©lĂ©ments peut ĂȘtre reshaped en (4,4), (2,8), ou (1,16), mais pas en (3,6) car 3×6=18, ce qui ne correspond pas Ă  la taille de l’array.

  • shape donne la taille de chaque dimension d’un array. Elle permet d’accĂ©der rapidement Ă  la structure de l’array pour adapter ou analyser ses dimensions.

  • vstack et hstack facilitent la concatĂ©nation d’arrays. vstack empile verticalement, c’est-Ă -dire qu’il ajoute des lignes, tandis que hstack empile horizontalement, c’est-Ă -dire qu’il ajoute des colonnes. Ces opĂ©rations nĂ©cessitent que les dimensions soient compatibles : pour vstack, les arrays doivent avoir le mĂȘme nombre de colonnes ; pour hstack, le mĂȘme nombre de lignes.

  • ndim indique le nombre de dimensions d’un array, ce qui est essentiel pour comprendre sa structure et choisir la bonne opĂ©ration de manipulation.

À retenir

Les opĂ©rations de reshape, shape, vstack, hstack et ndim permettent d’adapter et de combiner des arrays selon les besoins analytiques, en modifiant leur forme ou leur organisation sans altĂ©rer leurs donnĂ©es. Ces manipulations sont fondamentales pour prĂ©parer les donnĂ©es dans diffĂ©rents contextes de traitement.

8. AccÚs et modification éléments

Notions clés & Définitions

Indexation 1D
L'indexation 1D consiste Ă  accĂ©der Ă  un seul Ă©lĂ©ment dans un tableau ou array Ă  une seule dimension en utilisant un seul indice. Par exemple, dans un array a = np.array([0,1,2,3,4]), l’accĂšs Ă  l’élĂ©ment Ă  l’indice 3 se fait par a[3], ce qui renvoie la valeur 3. La numĂ©rotation des indices commence gĂ©nĂ©ralement Ă  0.

Indexation 2D
L'indexation 2D permet d’accĂ©der Ă  un Ă©lĂ©ment ou Ă  un sous-ensemble d’un tableau Ă  deux dimensions, en utilisant deux indices sĂ©parĂ©s par une virgule, chacun correspondant Ă  une dimension. Par exemple, pour un array a de forme (4,4), l’accĂšs Ă  un Ă©lĂ©ment spĂ©cifique se fait par a[i,j], oĂč i est l’indice de la ligne et j celui de la colonne. La notation peut aussi inclure des slices pour accĂ©der Ă  des lignes ou colonnes entiĂšres.

dtype
Le dtype (type de donnĂ©es) indique le type des Ă©lĂ©ments contenus dans un array. Par exemple, int, float, complex, etc. La connaissance du dtype permet de comprendre la nature des donnĂ©es manipulĂ©es et d’assurer la cohĂ©rence lors des opĂ©rations ou modifications.

Slicing
Le slicing est une technique pour accĂ©der Ă  une partie d’un array en spĂ©cifiant une plage d’indices. En 2D, on peut utiliser la syntaxe a[start:stop:step] pour sĂ©lectionner une sous-partie. Par exemple, a[1,:] permet d’accĂ©der Ă  la ligne 1 entiĂšre, tandis que a[:,2] donne la colonne 2 entiĂšre. Le slicing permet donc de sĂ©lectionner des lignes, colonnes ou sous-ensembles prĂ©cis.

Modification par index
Il est possible de modifier directement un ou plusieurs Ă©lĂ©ments d’un array en utilisant leur position. Par exemple, a[2] = 10 modifie l’élĂ©ment Ă  l’indice 2 dans un array 1D, et a[1,3] = 5 modifie l’élĂ©ment Ă  la ligne 1, colonne 3 dans un array 2D. La modification se fait en assignant une nouvelle valeur Ă  l’élĂ©ment ciblĂ©.

Points essentiels

On accĂšde aux Ă©lĂ©ments d'un array avec une seule paire de crochets, mĂȘme multidimensionnel.
Que l’array soit en 1D ou en 2D, l’accĂšs Ă  un Ă©lĂ©ment se fait toujours en utilisant une seule paire de crochets. Pour un array 1D, on utilise un seul indice : a[index]. Pour un array 2D, on utilise deux indices sĂ©parĂ©s par une virgule : a[i,j]. Par exemple, dans un array a de forme (4,4), a[2,3] donne l’élĂ©ment situĂ© Ă  la troisiĂšme colonne de la deuxiĂšme ligne.

dtype indique le type des éléments dans un array.
Le dtype permet de connaĂźtre le type de donnĂ©es stockĂ© dans l’array, comme par exemple int, float, ou autres. Il est accessible via array.dtype. Cette information est essentielle pour comprendre la nature des donnĂ©es et assurer la compatibilitĂ© lors des opĂ©rations.

On peut accéder à une ligne ou colonne entiÚre via slicing (ex : a[1,:], a[:,2]).
Le slicing permet de sélectionner des sous-ensembles précis. Par exemple, a[1,:] renvoie toute la ligne 1, tandis que a[:,2] renvoie toute la colonne 2. Ces opérations facilitent la manipulation de sous-ensembles dans un array multidimensionnel.

Les Ă©lĂ©ments peuvent ĂȘtre modifiĂ©s directement par leur position dans l'array.
Une fois qu’un Ă©lĂ©ment est accessible, il peut ĂȘtre modifiĂ© en lui assignant une nouvelle valeur. Par exemple, a[2] = 7 modifie l’élĂ©ment Ă  l’indice 2 dans un array 1D, et a[1,3] = 5 modifie l’élĂ©ment Ă  la ligne 1, colonne 3 dans un array 2D. La modification est immĂ©diate et directe.

À retenir

MaĂźtriser l’accĂšs et la modification ciblĂ©e des Ă©lĂ©ments dans les arrays permet de manipuler prĂ©cisĂ©ment les donnĂ©es, que ce soit pour extraire des sous-ensembles ou pour ajuster des valeurs spĂ©cifiques. La simplicitĂ© de l’utilisation d’une seule paire de crochets, mĂȘme en multidimensionnel, facilite cette manipulation.

9. Génération de nombres aléatoires

Notions clés & Définitions

np.random.rand : np.random.rand est une fonction de la bibliothĂšque NumPy qui permet de gĂ©nĂ©rer des nombres rĂ©els alĂ©atoires suivant une distribution uniforme sur l’intervalle [0, 1). Elle prend en argument une ou plusieurs dimensions, et retourne un tableau de nombres flottants. Par exemple, np.random.rand(3,2) gĂ©nĂšre un tableau 3x2 de nombres alĂ©atoires uniformĂ©ment distribuĂ©s entre 0 et 1.

np.random.randn : np.random.randn est une fonction de NumPy qui gĂ©nĂšre des nombres rĂ©els selon une distribution normale (ou gaussienne) standard, c’est-Ă -dire une distribution avec une moyenne de 0 et un Ă©cart-type de 1. Elle accepte en argument une ou plusieurs dimensions et retourne un tableau de nombres flottants suivant cette distribution. Par exemple, np.random.randn(4) produit un tableau de 4 nombres selon une distribution normale.

randint : La fonction randint de NumPy permet de générer des entiers aléatoires selon une distribution uniforme. Elle prend en paramÚtres la borne inférieure (incluse), la borne supérieure (exclue), et éventuellement la taille du tableau à générer. Par exemple, np.random.randint(1, 10, size=5) produit un tableau de 5 entiers aléatoires compris entre 1 et 9, avec une distribution uniforme.

Points essentiels

  • np.random.rand gĂ©nĂšre des nombres rĂ©els alĂ©atoires uniformĂ©ment distribuĂ©s. La fonction est utilisĂ©e pour simuler des donnĂ©es oĂč chaque valeur dans l’intervalle [0, 1) a une probabilitĂ© Ă©gale d’apparaĂźtre. Elle accepte des arguments indiquant la forme du tableau Ă  gĂ©nĂ©rer, par exemple np.random.rand(3, 4) pour un tableau 3 lignes et 4 colonnes. C’est un outil essentiel pour la simulation de donnĂ©es alĂ©atoires uniformes dans des modĂšles statistiques ou des expĂ©rimentations numĂ©riques.

  • np.random.randn gĂ©nĂšre des nombres rĂ©els suivant une distribution normale, centrĂ©e sur zĂ©ro avec un Ă©cart-type de 1. Elle est particuliĂšrement utile pour modĂ©liser des phĂ©nomĂšnes naturels ou financiers oĂč la distribution normale est une approximation courante. La sortie est un tableau de la mĂȘme dimension que celle spĂ©cifiĂ©e en argument, par exemple np.random.randn(5) pour un vecteur de 5 valeurs. Elle permet de simuler des erreurs ou des fluctuations alĂ©atoires selon une loi gaussienne.

  • randint gĂ©nĂšre des entiers alĂ©atoires selon une distribution uniforme. Elle est adaptĂ©e pour simuler des tirages au sort, des indices ou des catĂ©gories discrĂštes. La fonction nĂ©cessite la dĂ©finition de la borne infĂ©rieure (incluse) et de la borne supĂ©rieure (exclue), ainsi que la taille du tableau souhaitĂ©. Par exemple, np.random.randint(0, 100, size=10) produit un tableau de 10 entiers compris entre 0 et 99, avec une probabilitĂ© Ă©gale pour chaque valeur. Elle est essentielle pour la gĂ©nĂ©ration de donnĂ©es discrĂštes ou pour des simulations nĂ©cessitant des valeurs entiĂšres.

À retenir

Les fonctions np.random.rand, np.random.randn et randint offrent une gamme complÚte pour générer des nombres aléatoires selon différentes lois de distribution, permettant de simuler et modéliser efficacement des données statistiques variées dans NumPy. Leur utilisation facilite la création de jeux de données pour des expérimentations, des tests ou des modÚles probabilistes.

10. Fonctions mathématiques NumPy

Notions clés & Définitions

  • RODOLPHE GONZALÈS : voir section 1

AlgĂšbre linĂ©aire : Branche des mathĂ©matiques qui Ă©tudie les vecteurs, matrices, et opĂ©rations associĂ©es telles que le produit matriciel, l’inversion de matrices, et le calcul des valeurs propres. NumPy inclut des fonctions pour rĂ©aliser ces opĂ©rations de maniĂšre optimisĂ©e. RODOLPHE GONZALÈS (date) : mentionne que ces fonctionnalitĂ©s sont intĂ©grĂ©es dans la bibliothĂšque pour faciliter le traitement avancĂ© des matrices.

Produit matriciel : OpĂ©ration qui consiste Ă  multiplier deux matrices selon la rĂšgle spĂ©cifique de l’algĂšbre linĂ©aire, oĂč chaque Ă©lĂ©ment du rĂ©sultat est la somme des produits des Ă©lĂ©ments de la ligne d’une matrice par ceux de la colonne de l’autre. NumPy propose une fonction dĂ©diĂ©e pour effectuer ce calcul rapidement. RODOLPHE GONZALÈS (date) : prĂ©cise que cette opĂ©ration est essentielle pour de nombreux calculs en algĂšbre linĂ©aire.

Inversion de matrice : Processus qui consiste Ă  trouver une matrice inverse, telle que le produit de la matrice initiale par son inverse donne la matrice identitĂ©. NumPy fournit des fonctions pour calculer cette inversion, sous rĂ©serve que la matrice soit inversible. RODOLPHE GONZALÈS (date) : indique que cette opĂ©ration est cruciale pour rĂ©soudre des systĂšmes d’équations linĂ©aires.

Valeurs propres : Les valeurs propres d’une matrice sont des scalaires associĂ©es Ă  des vecteurs propres, tels que la multiplication de la matrice par un vecteur propre donne ce vecteur multipliĂ© par la valeur propre. NumPy permet de calculer ces valeurs dans le cadre de l’algĂšbre linĂ©aire. RODOLPHE GONZALÈS (date) : souligne leur importance dans l’analyse matricielle.

Points essentiels

NumPy permet d’effectuer des opĂ©rations mathĂ©matiques Ă©lĂ©ment par Ă©lĂ©ment sur les arrays, ce qui signifie que chaque opĂ©ration est appliquĂ©e individuellement Ă  chaque Ă©lĂ©ment sans tenir compte de la structure matricielle. Par exemple, si l’on additionne deux arrays, chaque Ă©lĂ©ment correspondant est additionnĂ© sĂ©parĂ©ment, ce qui facilite le traitement de grands ensembles de donnĂ©es.

Il inclut Ă©galement des fonctions d’algĂšbre linĂ©aire avancĂ©es, telles que le produit matriciel, l’inversion de matrice, et le calcul des valeurs propres. Ces opĂ©rations sont essentielles pour traiter des matrices dans des contextes scientifiques, d’ingĂ©nierie ou statistiques, et sont optimisĂ©es pour la performance, permettant de rĂ©aliser rapidement des calculs complexes sur de grandes matrices.

Les calculs effectuĂ©s par NumPy sont conçus pour ĂȘtre performants, exploitant des optimisations internes pour traiter efficacement des matrices de grande taille. Cela permet aux utilisateurs de rĂ©aliser des opĂ©rations mathĂ©matiques avancĂ©es sans sacrifier la vitesse, mĂȘme sur des ensembles de donnĂ©es volumineux.

À retenir

Exploiter les capacitĂ©s mathĂ©matiques avancĂ©es de NumPy permet d’effectuer rapidement et efficacement des calculs complexes sur matrices, notamment en utilisant des opĂ©rations Ă©lĂ©ment par Ă©lĂ©ment et des fonctions d’algĂšbre linĂ©aire optimisĂ©es.

11. Statistiques descriptives

Notions clés & Définitions

Minimum : La valeur la plus petite d’un tableau ou d’un array. Elle permet d’identifier le point infĂ©rieur de la distribution des donnĂ©es. Par exemple, si l’on a un array de tempĂ©ratures, le minimum correspond Ă  la tempĂ©rature la plus basse enregistrĂ©e. La fonction NumPy associĂ©e est np.min().

Maximum : La valeur la plus grande d’un tableau ou d’un array. Elle indique le point supĂ©rieur de la distribution des donnĂ©es. Par exemple, dans un tableau de scores, le maximum est le score le plus Ă©levĂ©. La fonction NumPy correspondante est np.max().

Moyenne : La somme de toutes les valeurs d’un tableau divisĂ©e par le nombre total de ces valeurs. Elle donne une idĂ©e de la tendance centrale des donnĂ©es. Par exemple, la moyenne des notes d’un examen permet de connaĂźtre la performance moyenne. La fonction NumPy pour la calculer est np.mean().

MĂ©diane : La valeur qui partage un ensemble de donnĂ©es en deux parties Ă©gales, lorsque celles-ci sont triĂ©es dans l’ordre croissant ou dĂ©croissant. La mĂ©diane est moins sensible aux valeurs extrĂȘmes que la moyenne. Par exemple, dans une distribution de revenus, la mĂ©diane indique le revenu central. La fonction NumPy correspondante est np.median().

Centiles : Les valeurs qui divisent une distribution en cent parties Ă©gales. Chaque centile indique la position d’une donnĂ©e par rapport Ă  l’ensemble, permettant d’analyser la dispersion et la distribution des donnĂ©es. Par exemple, le 25e centile (ou premier quartile) correspond Ă  la valeur en dessous de laquelle se trouvent 25 % des donnĂ©es. La fonction NumPy pour calculer un centile spĂ©cifique est np.percentile().

Points essentiels

NumPy fournit des fonctions pour calculer le minimum et le maximum d’un array, que celui-ci soit en 1D ou en 2D. La fonction np.min() permet d’obtenir la valeur la plus petite, tandis que np.max() donne la valeur la plus grande. Ces fonctions sont essentielles pour rĂ©sumer rapidement l’étendue des donnĂ©es.

Il est Ă©galement trĂšs simple de calculer la moyenne et la mĂ©diane avec NumPy. La moyenne, calculĂ©e via np.mean(), donne une idĂ©e de la valeur centrale en tenant compte de toutes les donnĂ©es. La mĂ©diane, obtenue avec np.median(), est particuliĂšrement utile lorsque la distribution est asymĂ©trique ou contient des valeurs extrĂȘmes, car elle n’est pas influencĂ©e par ces derniĂšres.

Les centiles sont des outils précieux pour analyser la distribution des données. En utilisant np.percentile(), on peut déterminer, par exemple, le 10e, 50e ou 90e centile, ce qui permet de comprendre la dispersion et la concentration des valeurs dans un ensemble. Ces mesures facilitent la compréhension des caractéristiques principales des données en complément des autres statistiques.

À retenir

Utiliser les fonctions statistiques de NumPy permet de rĂ©sumer efficacement les principales caractĂ©ristiques d’un ensemble de donnĂ©es, telles que l’étendue, la tendance centrale et la dispersion, facilitant ainsi leur analyse et leur interprĂ©tation.

Tableaux de SynthĂšse

ThÚmeConcepts ClésDétailsAuteur/Source
Fonctions en PythonFonctionBloc de code pour une tùche spécifique, modulable, réutilisableRODOLPHE GONZALÈS
ArgumentValeur d’entrĂ©e transmise lors de l’appel, valable uniquement Ă  l’intĂ©rieur de la fonctionRODOLPHE GONZALÈS
ParamÚtreVariable déclarée dans la définition, représentant une valeur attendue par la fonctionRODOLPHE GONZALÈS
Retour (return)Résultat renvoyé par la fonction aprÚs exécutionRODOLPHE GONZALÈS
RĂ©utilisabilitĂ©CapacitĂ© d’utiliser une fonction plusieurs fois dans diffĂ©rents contextesRODOLPHE GONZALÈS
Fonctions lambdaFonction lambdaAnonyme, définie en une ligne avec lambda, sans nom expliciteRODOLPHE GONZALÈS
Fonction anonymeFonction sans nom utilisée pour opérations simples et temporairesRODOLPHE GONZALÈS
Expression lambdaSyntaxe lambda + paramÚtres + : + expression, exemple : lambda x: x+1RODOLPHE GONZALÈS
BibliothÚques externes PythonModule externeFichier ou ensemble de fichiers regroupant des fonctionnalités, importé dans un scriptRODOLPHE GONZALÈS
Fonctions préprogramméesFonctions déjà écrites et optimisées, disponibles dans les bibliothÚques pour éviter la réécritureRODOLPHE GONZALÈS
Réutilisation de codeUtilisation de blocs existants pour gagner du temps et assurer la fiabilité du codeRODOLPHE GONZALÈS

PiÚges & Confusions Fréquentes

  1. Confondre argument et paramĂštre : le paramĂštre est la variable dans la dĂ©finition, l’argument la valeur passĂ©e lors de l’appel.
  2. Oublier que return peut renvoyer plusieurs valeurs sous forme de tuple.
  3. Utiliser une fonction lambda pour des opérations complexes ; elle est adaptée uniquement aux opérations simples.
  4. Ne pas importer correctement une bibliothĂšque externe avant utilisation (import nom).
  5. Confondre module et bibliothĂšque : une bibliothĂšque regroupe plusieurs modules.
  6. Tenter d’utiliser une fonction lambda avec plusieurs instructions ; elle ne doit contenir qu’une seule expression.
  7. Oublier que les arguments sont valables uniquement Ă  l’intĂ©rieur de la fonction.

Checklist Examen

  1. ConnaĂźtre la dĂ©finition d’une fonction selon RODOLPHE GONZALÈS et ses rĂŽles principaux.
  2. Savoir faire la différence entre argument et paramÚtre.
  3. Expliquer le rĂŽle de return dans une fonction Python.
  4. Comprendre le concept de rĂ©utilisabilitĂ© d’une fonction.
  5. DĂ©finir ce qu’est une fonction lambda et ses avantages.
  6. Savoir écrire une fonction lambda simple avec syntaxe lambda.
  7. Identifier les cas oĂč utiliser une fonction lambda plutĂŽt qu’une fonction classique.
  8. Connaßtre la différence entre module externe et bibliothÚque en Python.
  9. Savoir importer une bibliothĂšque externe avec import ou import as.
  10. Connaßtre quelques bibliothÚques externes courantes (ex : NumPy, Pandas) et leur utilité.
  11. Comprendre le rÎle des fonctions préprogrammées dans les bibliothÚques externes.
  12. Maßtriser la syntaxe pour générer et manipuler des arrays NumPy (création, accÚs, modification).
  13. Connaßtre les principales fonctions mathématiques NumPy (ex : sin, cos, exp).
  14. Savoir générer des nombres aléatoires avec NumPy (np.random) et leur utilisation.
  15. Être capable d’effectuer des statistiques descriptives simples avec NumPy (moyenne, mĂ©diane, variance).

Test your knowledge

Test your knowledge on Introduction aux Fonctions et Manipulations NumPy with 11 multiple-choice questions with detailed corrections.

1. Comment Rodolphe GonzalÚs définit-il une fonction en Python ?

2. Quelle est la caractéristique principale d'une fonction lambda en Python ?

Take the quiz →

Review with flashcards

Memorize the key concepts of Introduction aux Fonctions et Manipulations NumPy with 22 interactive flashcards.

Fonction en Python — dĂ©finition ?

Bloc de code pour une tùche spécifique, réutilisable.

Argument — rîle ?

Valeur d’entrĂ©e transmise Ă  une fonction.

ParamĂštre — diffĂ©rence ?

Variable déclarée dans la définition, attendu par la fonction.

See flashcards →

Similar courses

Create your own revision sheets

Import your course and AI generates sheets, quizzes and flashcards in 30 seconds.

Sheet generator