Skip to content

Instantly share code, notes, and snippets.

@YannBouyeron
Created January 22, 2018 19:22
Show Gist options
  • Save YannBouyeron/784af9b808c2accb42de45d1ddbfab0b to your computer and use it in GitHub Desktop.
Save YannBouyeron/784af9b808c2accb42de45d1ddbfab0b to your computer and use it in GitHub Desktop.

Introduction à Numpy

Importer Numpy

Par convention, on importe toujours le module Numpy de la manière suivante:

import numpy as np

Les listes et tableaux avec Numpy

Les fonctions arange et array présentées ci dessous renvoient des objets de type: <type 'numpy.ndarray'> pour N dimensional array. Ces objets ne peuvent contenir que des nombres de types float ou int.

Tableau à une dimension (équivalent d'une liste):

Création d'une liste de 10 nombres. (Python compte à partir de 0):

>>> a = np.arange(10)
>>> print (a)
[0 1 2 3 4 5 6 7 8 9]

Création d'une liste de 1 (inclus) à 11 (exclu) :

>>> b = np.arange(1,11)
>>> print (b)
[ 1  2  3  4  5  6  7  8  9 10]

Création d'une liste de 0 (inclus) à 6 (exclu) avec un "pas" de 0.5:

>>> c = np.arange(0,6,0.5)
>>> print (c)
[ 0.   0.5  1.   1.5  2.   2.5  3.   3.5  4.   4.5  5.   5.5]

Liste de 3 nombres:

>>> e = np.array([1,2,3])
>>> print (e)
[1 2 3]

Tableaux à 2 dimensions:

Un tableau de "0" de 3 lignes sur 3 colonnes:

>>> h = np.zeros((3,3))
>>> print (h)
[[ 0.  0.  0.]
 [ 0.  0.  0.]
 [ 0.  0.  0.]]

Un tableau de "1" de 4 lignes sur 2 colonnes:

>>> i = np.ones((4,2))
>>> print (i)
[[ 1.  1.]
 [ 1.  1.]
 [ 1.  1.]
 [ 1.  1.]]

Un tableau de différents nombres de 2 lignes sur 3 colonnes:

>>> d = np.array([[0,1,2],[3,4,5]])
>>> print (d)
[[0 1 2]
 [3 4 5]]

Toutes les formulations suivantes conduisent au même ndarray :

>>> x = [0,1,2]
>>> y = [3,4,5]
>>> j = np.array([x,y])	

>>> x = [0,1,2]
>>> y = [3,4,5]
>>> j1 = np.array ((x,y))

>>> j2 = np.array([[0,1,2],[3,4,5]])	

>>> j3 = np.array([0,1,2,3,4,5]).reshape(2,3)

>>> j4 = np.arange(6).reshape(2,3)	

>>> z = np.array([0,1,2,3,4,5])
>>> z1 = np.reshape(z,(2,3))

>>> w = np.array([0,1,2,3,4,5])
>>> w.shape = (2,3)

Résultat :

>>> print (j)
[[0 1 2]
 [3 4 5]]

Informations sur les ndarray :

Comme pour les listes classiques, les fonctions min() , max() , mean() , len() , sum() s'appliquent aussi sur les ndarray. Dans le cas d'un ndarray à deux dimensions, la fonction len() indique le nombre de lignes. Il faut utiliser la fonction np.size() pour connaître le nombre total d'éléments dans un tableau à 2 dimensions. La boucle for fonctionne aussi (attention sur les ndarray à 2 dimensions, elle compte les lignes)

Opérations sur les ndarray

La fonction np.append() permet d'ajouter un ou des éléments à un ndarray à une dimension, ou de combiner plusieurs listes ou ndarray.

>>> a = np.array([1,2,3])
>>> print a
[1 2 3]	

>>> b = np.append(a,[56])
>>> print b
[ 1  2  3 56]

>>>c = np.append([1, 2, 3], [[4, 5, 6], [7, 8, 9]])
>>> print c
[1 2 3 4 5 6 7 8 9]

>>> d = np.append(c,b)
>>> print d
[ 1  2  3  4  5  6  7  8  9  1  2  3 56]

Modification d'un élément :

>>> j = np.array([[0,1,2],[3,4,5]])
>>> print (j)
[[0 1 2]
 [3 4 5]]
 
>>> j[0,1] #on indique d'abord la ligne (ici 0) puis la colonne (ici 1)
1

>>> j[0,1]=5000
>>> print (j)
[[   0 5000    2]
 [   3    4    5]]

Le hasard avec numpy:

Numpy dispose d'un module random plus élaboré que le module random intégré d'office dans python. Voici quelques exemples de son utilisation :

Choisir 3 nombres entre 0 et 4:

>>> r = np.random.choice(5,3)

Choisir 3 nombres différents entre 0 et 4:

>>> r = np.random.choice(5,3,replace=False)

Choisir 4 éléments dans "maliste":

>>> maliste = [0,1,2,3,4,5,6,7,8]
>>> r = np.random.choice(maliste,4)

Choisir 2 nombres entre 5 et 11 (supérieur ou égal à 5 , strictement inférieur à 11)

>>> r = np.random.randint(5,11,2)

De nombreuses autres fonctions existent: http://docs.scipy.org/doc/numpy/

@Mlrich
Copy link

Mlrich commented Feb 6, 2018

très intéressant

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment