Numpy. Travailler avec des tableaux et des matrices


importer numpy en tant que np V = np.tableau((1,2,3,4)) imprimer(V[0]) # 1 imprimer(V[-1]) # 4 imprimer(V[1:-2]) # [2] print(V[::2]) # [1 3]

Bibliothèque de données NumPy

NumPy — une bibliothèque open source pour le langage de programmation Python, qui implémente un grand nombre d'opérations pour travailler avec des vecteurs, des matrices et des tableaux. 

Les algorithmes mathématiques implémentés dans des langages interprétés (par exemple Python) sont souvent beaucoup plus lents que ceux implémentés dans des langages compilés (par exemple Fortran, C, Java). La bibliothèque NumPy fournit des implémentations d'algorithmes de calcul (sous la forme de fonctions et d'opérateurs) optimisés pour travailler avec des tableaux multidimensionnels. 
Par conséquent, tout algorithme pouvant être exprimé sous la forme d'une séquence d'opérations sur des tableaux (matrices) et implémenté à l'aide de NumPy est suffisamment rapide.

NumPy (Numeric Python) est une bibliothèque mathématique de base pour travailler avec des données. Cette bibliothèque sous-tend d'autres bibliothèques pour travailler avec des tâches d'apprentissage automatique ou d'analyse de données (par exemple, Pandas (travail avec des données tabulaires), SciPy (méthodes d'optimisation et calculs scientifiques), < tt>Matplotlib (traçage)).

 

Travailler avec NumPy

Pour commencer à travailler avec la bibliothèque numpy, vous devez l'importer au début du programme comme toute autre bibliothèque, importer numpy ou alors (ce qui est utilisé plus souvent) importer numpy en tant que np



Vecteurs NumPy

Un vecteur (ou tableau) dans NumPy est un ensemble ordonné de données homogènes.

Un élément d'un vecteur est accessible par son index, comme cela se fait dans les listes. Chaque élément du vecteur a sa propre place spécifique, qui est définie lors de la création.
Tous les éléments vectoriels ont le même type de données (int, str, bool, etc.).

Création d'un vecteur
Pour créer un vecteur, vous devez utiliser le constructeur numpy.array (un objet itérable).
Les parenthèses indiquent tout objet itérable : tuple, list, range(), etc.
 
Exemple 
importer numpy en tant que np importer numpy en tant que np print(np.array((1,2,3,4,5))) # vecteur de tuple print(np.array([1,2,3,4,5])) # vecteur de la liste print(np.array(range(5))) # vecteur du générateur

Travailler avec des éléments vectoriels

Travailler avec des éléments vectoriels est le même qu'avec des éléments de liste, vous pouvez accéder aux éléments par leur index et également créer des tranches.

Exemple
1
2
3
4
5
6
7

Sélectionner des éléments vectoriels
Pour sélectionner des éléments vectoriels, vous pouvez utiliser un vecteur contenant des valeurs logiques (expressions). Les éléments du vecteur qui seront True dans le vecteur avec des valeurs booléennes seront sélectionnés.
 

Exemple
importer numpy en tant que np V = np.tableau([1,-2,3,-4,5]) # sélectionner les deux premiers éléments du vecteur print(V[np.array((Vrai, Vrai, Faux, Faux, Faux))]) # [ 1 -2] # sélectionner des éléments vectoriels positifs print(V[V > 0]) # [1 3 5] # sélectionner des éléments vectoriels pairs print(V[V % 2 == 0]) # [-2 -4]

Manières de créer des tableaux et des matrices

Autres moyens utiles de créer des tableaux et des matrices.

Exemple
 1
 2
 3
 4
 5
 6
 7
 8
 9
dix
onze
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
trente
31
32
33
34
35
36
37
importer numpy en tant que np # Tableau unidimensionnel de zéros print(np.zero(5)) #[0. 0.0.0.0.] # Tableau bidimensionnel de zéros print(np.zeros((2, 3))) # [[0. 0.0.] #[0. 0.0.]] # Tableau 3D d'unités print(np.ones((2,3,4))) # [[[1. 1. 1. 1.] # [1. 1. 1. 1.] # [1. 1. 1. 1.]] # # [[1. 1. 1. 1.] # [1. 1. 1. 1.] # [1. 1. 1. 1.]]] # Tableau de zéros avec indication de type print(np.zeros(5, dtype=np.int)) # [0 0 0 0 0] # Un tableau basé sur une liste de listes print(np.array([[1,2.0],[0,0],(1,3.)])) # [[1. 2.] #[0. 0.] # [1. 3.]] # Un tableau rempli d'éléments d'une progression arithmétique commençant à 0 print(np.arange(10)) # [0 1 2 3 4 5 6 7 8 9] # Progression arithmétique avec indication de type print(np.arange(2, 10, dtype=np.float)) # [2. 3. 4. 5. 6. 7. 8. 9.] # Progression arithmétique avec différence non entière print(np.arange(2, 3, 0.1)) # [2. 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9] # Progression arithmétique avec un nombre donné de termes print(np.linspace(1., 4., 6)) # [1. 1.6 2.2 2.8 3.4 4. ]

Zéro élément de tableau
 
Fonction non nul(V) 
Le résultat est un tuple de tableaux. Chacun de ces tableaux correspond à un axe distinct du tableau d'origine et contient des indices avec des éléments non nuls dans ce tableau.
V - un tableau NumPy ou un objet semblable à un tableau.
Renvoie un Python tuple (tuple) - tuple avec des tableaux d'index d'éléments non nuls du tableau d'origineV.
Fonction count_nonzero(V) 
Cette fonction est basée sur la méthode intégrée  __bool__() des objets Python qui vérifie s'ils sont vrais. Il s'ensuit que la fonction  count_nonzero() est en fait capable de fonctionner non seulement avec des nombres, mais aussi avec tous les objets qui peuvent être vrais ou faux.
V - un tableau NumPy ou un objet semblable à un tableau.
La fonction renvoie le nombre d'éléments de tableau non nuls le long de l'axe spécifié.

Matrices diagonales

La fonction  diag(V, k=0) vous permet d'extraire une diagonale d'un tableau, ainsi que de construire des tableaux diagonaux à partir de tableaux unidimensionnels.
V - Un objet de type tableau, des tableaux bidimensionnels ou unidimensionnels, des matrices, des listes ou des tuples, ou toute fonction ou objet avec une méthode qui renvoie une liste ou un tuple.
k - indice de la diagonale (facultatif).
La valeur par défaut est k = 0 qui correspond à la diagonale principale. Une valeur k positive déplace la diagonale vers le haut, une valeur négative la déplace vers le bas.

La fonction renvoie un tableau NumPy (ndarray) - la diagonale du tableau spécifié ou un tableau diagonal du tableau unidimensionnel spécifié.

Tableaux NumPy 2D

Un élément d'un tableau à deux dimensions est accessible en spécifiant les coordonnées de l'élément, d'abord le numéro de ligne, puis le numéro de colonne. Les coordonnées sont séparées par des virgules. 
Tout tableau peut être converti en un tableau à deux dimensions à l'aide de la fonction reshape().

Exemple
1
2
3
4
5
6
7
8
# La fonction reshape() change la forme d'un tableau sans changer ses données. x = np.arange(12).reshape(3, 4) imprimer(x) # [[ 0 1 2 3] # [ 4 5 6 7] # [ 8 9 10 11]] # Pour accéder à un élément, indiquez ses coordonnées séparées par des virgules print(x[1, 2]) # 6