Python pour la data science: les bases du langage

Cet article est le premier de la série d’articles « introduction à la data science avec python ». Dans cette série nous allons nous attaquer à plusieurs facette de la data science (La programmation, le traitement des données, un peu de statistiques, du machine learning et du deep learning). Cette série aura essentiellement pour but de présenter les différentes bibliothèques python pour la data science.

Alors, pourquoi Python  pour la data science ?

Growth of major programming languages chart -Python pour la data science
Evolution des langages de programmation source: https://selftaught.blog/best-programming-language-to-learn-first/

Ces dernières années Python est devenu l’un des langages de programmation les plus populaires en plus d’être le langage de programmation le plus utilisé pour les tâches de calcul scientifique notamment pour l’analyse et la visualisation de grands ensembles de données. On comprend ainsi pourquoi utiliser python pour la data science.

De plus, ce langage de programmation est assez facile à prendre en main et donc parfait pour des débutants. Aussi si vous voulez en savoir plus sur toute l’histoire derrière ce langage je vous laisse le lien Wikipédia ici .

Le nécessaire avant de commencer

Dans cet article la version de Python que nous utiliserons est Python 3.

  •  Si vous êtes totalement débutant débutant en programmation, nous conseillons d’installer uniquement Python 3. Vous trouverez le nécessaire ici.
  •  Par contre si vous avez déjà une expérience en programmation nous vous conseillons d’installer la distribution anaconda via ce tutoriel .
  • Ou vous pouvez débuter sans installation avec Google Colab

Programmer en python: Les Bases

1. Hello World

On ne peut commencer à apprendre les bases d’un langages sans passer par le célèbre Hello World.
En python c’est vraiment simple. Pour ce faire il suffit d’ouvrir un terminal et entrer la commande suivante:

python

puis la commande suivante:

print("Hello World")

Vous verrez « Hello World » dans votre terminal.
On pourra dire que cette ligne de code est une instruction. On demande donc à l’interpréteur Python d’exécuter cette instruction. Ainsi, nous pourrons dire qu’un programme python est une suite logique d’instruction.

Un concept de base de python est l’indentation. L’indentation est une façon de définir un bloc d’instruction. C’est à dire que ce bloc d’instruction (ou de lignes de code) devra s’exécuter dans un but spécifique.
La plupart des langages de programmation tels que JavaScript, C ++ et Java utilisent des accolades {} pour définir un bloc de code. L’une des caractéristiques distinctives de Python est son utilisation de l’indentation pour mettre en évidence les blocs de code. Les espaces sont utilisés pour l’indentation en Python. Toutes les instructions avec la même distance à droite appartiennent au même bloc de code. Si un bloc doit être plus profondément imbriqué, il est simplement indenté davantage à droite.
Suivons l’exemple suivant:

x="Beginner"
if x== "Beginner":
    print("Hello World")
    print(" Beginner")

Dans cet exemple on a un bloc de 2 lignes de code avec la fonction « print() »  (car elles sont décalés vers la droite). On peut ainsi comprendre qu’elles appartiennent à un même bloc d’instruction qui commence par « if x== « Beginner »: » . Le standard au niveau de python est d’utiliser 4 espaces afin de décaler un bloc d’instruction.

2.  Les variables et les Types

Les variables

En programmation, une variable est une valeur qui peut changer en fonction des conditions ou des informations transmises au programme. En Python on déclare une variable comme suit :

x=1

C’est à dire qu’on affecte 1 à la variable x.

Les Types

En python lorsqu’on crée un variable on lui définit automatiquement un type ( Nombre, Texte,…). Les types basiques en python sont :

  •  Integer : Ce sont les nombre entiers positifs ou négatifs comme 2, 3,198,…
  • Float : « Float » signifie « nombre à virgule flottante ». Pour faire plus simple il s’agit des nombres à virgules comme 3.2, 10.0, 17.9818.
  • Boolean : Il s’agit des valeurs booléennes (Vrai ou Faux).
  • String : C’est une collection d’un ou plusieurs caractères mis entre guillemets simples, doubles ou triples
  • Les nombres complexes que nous ne présenterons pas dans cet article.

On peut ainsi remarquer que ces différents types ne sont que des valeurs numériques et du texte !

L’exemple suivant vous montre la syntaxe python pour déclarer vos différentes variables

#Integer
x=10
X=23

#Float
y=9.0
pi= 3.14

#Boolean
boolVal1= True
boolVal2= False
#String
unString ="Ceci est une chaine de caractère !"

Vous pouvez utilisez la fonction print() pour afficher les différentes valeurs de ces variables et type() afin d’afficher leur type.

En Python, d’autres types de variables existent bien évidemment. Elles ont une structure plus complexe que celles présentées précédemment. Contrairement aux types de variables présentés plus haut qui contiennent une seule valeur à un instant t, ces types de variables stockent plutôt un ensemble ou une collection de données. En Voici une liste non exhaustive:

  • Les listes (Lists)
    Une liste stocke un ensemble d’éléments dans un ordre particulier (une séquence). Les listes vous permettent de stocker un grands nombres de données de différents types au même endroit. Imaginions que nous voulons traiter 1000 valeurs numériques, nous n’allons bien évidement pas créé autant de variables. On pourra alors utiliser les listes. Aussi une Liste est mutable, il est donc possible d’ajouter des éléments, de les modifier et de les supprimer.Une Liste se définit avec des crochets, en séparant les éléments par des virgules : [a, b, c].

    #Exemple d'une liste
    listExample = [1, 'r', 3.0,[1, 2, 3]].
    
  • Les t-uplets (Tuples)
    Un tuple est comme une liste un ensemble ordonné de plusieurs informations. La différence entre une liste et un tuple est qu’un tuple est définit avec des parenthèses « () » et inaltérable (ce qui signifie qu’une fois défini, vous ne pouvez pas supprimer, ajouter ou éditer des valeurs à l’intérieur du tuple).

    #Exemple de tuples
    tupleExample_1 = 1,2,3
    tupleExample_2 = ('a','2',1)
    
  • Les dictionnaires (Dictionary)
    Un dictionnaire est une collection non ordonnée de données sous forme de paire clé: valeur d’où le nom de dictionnaire ;). Suivons exemple suivant:

    #Exemple de dictionnaire
    rank_dict = {'John':1, 'Lourn':2, 'Avrel':3, 'Joe':4}
    print(rank_dict)
    

    l’interpréteur python affichera

    {'Lourn': 2, 'John': 1, 'Joe': 4, 'Avrel': 3}
    

    On peut dire que ce dictionnaire stocke le classement de 4 personnes. Dans notre cas la clé correspond au nom d’une personne et la valeur c’est le classement (de 1 à 4).

  • Les fichiers (Files)
    Je suis déjà sûr que si t’es à ce niveau de l’article tu as déjà entendu parler des fichiers. Avec python, il est possible de lire, créer ou modifier des fichiers (csv, txt,pdf,jpg,…).

3.  Les calculs et les opérations

Le calcul numérique
Comme tout langage de programmation, python permet d’effectuer les calculs et opérations numériques de bases (somme, multiplication, division,…)
Un exemple de quelques opérations de base

# Integer ou Float
x = 4
y = 2

# Addition
print(x + y)

# Soustraction
print(x - y)

# Multiplication
print(x * y)

# le quotient
print(x / y)

# le reste de la division
print(x % y)

# la valeur absolue
print(abs(x))

# x à la puissance y
print(x ** y)

Il est aussi possible d’effectuer des conversion de type des variables (ex Integer en Float, Float en Booléen, Integer en String …). Pour ce faire on utilisera les fonctions suivantes :str(),int(),float(),bool()

#exemple conversion Booléen en String
x_bool = True
x_boolToString= str(x_bool)
print(x_boolToString)
#exemple conversion Integer en Float
y_int = 18
y_intToString = float(y_int)
print(x_boolToString)

🚨 Le cas particulier des strings
C’est vrai que ce ne sont pas des valeurs numériques, cependant avec python il est possible d’additionner deux strings. Cependant nous dirons plutôt une concaténation.

x='henri raconte des '
y= 'blablas'
print(x+y)

On peut aussi multiplier un string avec un integer 🙈 . Pourquoi ? Imaginer que vous voulez écrire plusieurs fois un même mot, il vous suffit de multiplier la variable par le nombre de fois voulu.

x="J'aime Python \n"
print(x*10)

On peut aussi mettre en majuscule, minuscule un string, on peut aussi compter l’occurence d’un terme dans un string…

x="John Doe"
#EN MAJUSCULE
print(x.upper())
#en minuscule
print(x.lower())
#compter le nombre de 'o' dans la variable x
print(x.count('o'))
#remplacer 'o' par 'a' dans la variable x
print(x.replace('o', 'a'))

Bon on s’attaque aux opérations sur les listes !

Manipulons les listes !
On a vu plus haut comment définir une liste, alors comment fait-on pour accéder aux valeurs qui sont à l’intérieur de notre liste ? Nous devons alors introduire la notion d’index d’une liste.

En effet, pour accéder à une valeur que nous avons stocker dans notre liste il faut connaitre sa position dans la liste (on parlera alors d’index). En python les indexes commencent à partir de 0. Il existe aussi des indexes négatifs qui sont très utiles si on s’intéresse aux derniers éléments stockés dans la liste. Ainsi en python pour accéder à une valeur dans une liste il faut signifier son index comme suit: laListe[index]

x=[1,'2',3,'c','f']
#le premier élément de la liste
print(x[0])
#le dernier élément de la liste
print(x[-1])

Il est aussi possible de sélectionner une partie d’une liste

x=[1,'2',3,'c','f']
#les éléments entre l'index 0 et l'index 2
print(x[0:3])
#les éléments après l'index 0
print(x[1:])
#les éléments avant l'index 2
print(x[:2])

On peut aussi faire une concatenation de listes et effectuer une multiplication (abus de langage) comme le cas des String.
Les méthodes courantes pour manipuler les listes sont les suivantes:

x=[1,'2',3,'c','f']
#La longueur de la liste
print(len(x))
#Trouver l'index d'un élément
x.index('f')
#Compter l'occurrence d'un élément
x.count('f')
#Ajouter un élément avec "append" pour un seul élément ou "extend"pour plusieurs (en fin de liste)
x.append('toto')
x.extend([4, 5])
#Insérer un élément à une position spécifique
x.insert(0,'Premier')
#Supprimer un élément
x.remove('f')
x.pop('toto')
del x[0]

On passe au dictionnaire !
Comme présenté plus haut les dictionnaires sont assez proches des listes sauf qu’on utilisera des clés au lieu des indexes (Plus cool 😎). Ainsi en python pour accéder à un élément dans un dictionnaire il faut signifier sa clé comme suit: monDict[‘key’].

rank_dict = {'John':1, 'Lourn':2, 'Avrel':3, 'Joe':4}
#afficher la valeur de la clé 'John'
print(rank_dict['John'])

On peut aussi faire une concatenation comme dans le cas des listes cependant nous n’utiliserons pas l’opérateur ‘+’

rank_dict_1 = {'John':1, 'Lourn':2}
rank_dict_2 = {'Avrel':3, 'Joe':4}
#Concaténation
rank_dict_1.update(rank_dict_2)
print(rank_dict_1)

Je vous mets quelques exemples de méthodes des dictionnaires les plus utiles

myDictionnary = {'John':1, 'Lourn':2, 'Avrel':3, 'Joe':4}
#le nombre de paires (clé,valeur) dans le dictionnaire avec len().
print(len(myDictionnary))
#Modifier une valeur
myDictionnary['Lourn']=1
#Retourner une liste de paires de tuples (Clés, Valeur) dans le dictionnaire.
myDictionnary.items()
#la liste des clés du dictionnaire
myDictionnary.keys()
#la liste des valeurs du dictionnaire
myDictionnary.values()

4.  Les Librairies

Une librairie Python est une collection de fonctions et de méthodes qui vous permet d’effectuer de nombreuses actions sans écrire votre propre code. Par exemple la libraire Math , fournira un grand nombre de fonctions et constantes mathématiques (ex sin ,cos, pi,…). Nous n’aurons donc plus besoin de réécrire le code de ces fonctions, nous allons les réutiliser. Pour ce faire il nous faudra ‘importer la librairie voulue’ afin de pouvoir accéder à ces ressources.

import math #import de la libraire math
print(pi) #pi=3.141592653589793...
print(cos(0)) # le cosinus de 0

Des ressources supplémentaires pour aller plus loin !

Dans cet article nous avons présenté quelques concepts de bases du langage Python pour la data science. Cependant, il y a encore plein de choses à connaitre. Nous vous mettons une liste de ressources assez intéressantes.

Petit recap

En somme, nous avons présenté l’intérêt d’utiliser python pour la data science et présenter quelques concepts de base du langage. Dans le prochain article nous nous intéresserons à la manipulation des matrices et des vecteurs grâce à Numpy !

N’oubliez pas de laisser un petit commentaire 😉

2 réflexions sur “Python pour la data science: les bases du langage”

  1. Bonjour,
    dans l’exemple ci dessous, est ce que ce ne serait pas plutôt print(x[0:2])?
    merci!

    Il est aussi possible de sélectionner une partie d’une liste
    x=[1,’2′,3,’c’,’f’]
    #les éléments entre l’index 0 et l’index 2
    print(x[0:3])

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.