Par convention, on importe toujours le module Numpy de la manière suivante:
import numpy as np
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.
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]
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]]
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)
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]]
Numpy dispose d'un module random
plus élaboré que le module random intégré d'office dans python. Voici quelques exemples de son utilisation :
>>> r = np.random.choice(5,3)
>>> r = np.random.choice(5,3,replace=False)
>>> maliste = [0,1,2,3,4,5,6,7,8]
>>> r = np.random.choice(maliste,4)
>>> r = np.random.randint(5,11,2)
De nombreuses autres fonctions existent: http://docs.scipy.org/doc/numpy/
très intéressant