Python Tutoriel NumPy pour les débutants : apprenez avec des exemples

Qu'est-ce que NumPy dans Python?

NumPy est une bibliothèque open source disponible dans Python, qui aide à la programmation mathématique, scientifique, technique et de science des données. C'est une bibliothèque très utile pour effectuer des opérations mathématiques et statistiques dans Python. Cela fonctionne parfaitement pour les tableaux multidimensionnels et la multiplication matricielle. Il est facile à intégrer avec C/C++ et Fortran.

Pour tout projet scientifique, NumPy est l'outil à connaître. Il a été conçu pour fonctionner avec le tableau à N dimensions, l'algèbre linéaire, les nombres aléatoires, la transformée de Fourier, etc.

NumPy est un langage de programmation qui traite des tableaux et matrices multidimensionnels. En plus des tableaux et des matrices, NumPy prend en charge un grand nombre d'opérations mathématiques. Dans cette partie, nous passerons en revue les fonctions essentielles que vous devez connaître pour le tutoriel sur 'TensorFlow.

Pourquoi utiliser NumPy ?

NumPy est synonyme d'efficacité de la mémoire, ce qui signifie qu'il peut gérer une grande quantité de données plus accessible que n'importe quelle autre bibliothèque. De plus, NumPy est très pratique à utiliser, en particulier pour la multiplication et le remodelage matriciels. En plus de cela, NumPy est rapide. En fait, TensorFlow et Scikit apprennent à utiliser le tableau NumPy pour calculer la multiplication matricielle dans le back-end.

Comment installer NumPy

Pour installer la bibliothèque NumPy, veuillez vous référer à notre tutoriel Comment installer TensorFlow. NumPy est installé par défaut avec Anaconda.

Dans le cas distant, NumPy n'est pas installé-

Vous pouvez installer NumPy à l'aide d'Anaconda :

conda install -c anaconda numpy
  • In Jupyter Carnet de notes :
import sys
!conda install --yes --prefix {sys.prefix} numpy

Importer NumPy et vérifier la version

La commande pour importer numpy est :

import numpy as np

Le code ci-dessus renomme l'espace de noms Numpy en np. Cela nous permet de préfixer la fonction, les méthodes et les attributs Numpy avec « np » au lieu de taper « numpy ». C'est le raccourci standard que vous trouverez dans la littérature numpy

Pour vérifier votre version installée de NumPy, utilisez la commande ci-dessous :

print (np.__version__)

Sortie :

1.18.0

Qu’est ce qu' Python Tableau NumPy ?

Les tableaux NumPy sont un peu comme Python listes, mais toujours très différentes en même temps. Pour ceux d’entre vous qui sont nouveaux sur le sujet, clarifions de quoi il s’agit exactement et à quoi il sert.

Comme son nom l'indique, un tableau NumPy est une structure de données centrale de la bibliothèque numpy. Le nom de la bibliothèque est en fait l'abréviation de « Numeric Python» ou « Numérique Python ».

Création d'un tableau NumPy

Le moyen le plus simple de créer un tableau dans Numpy est d'utiliser Python Liste

myPythonList = [1,9,8,3]

Pour convertir la liste Python en un tableau numpy en utilisant l'objet np.array.

numpy_array_from_list = np.array(myPythonList)

Pour afficher le contenu de la liste

numpy_array_from_list

Sortie :

array([1, 9, 8, 3])

En pratique, il n'est pas nécessaire de déclarer un Python Liste. L'opération peut être combinée.

a  = np.array([1,9,8,3])

REMARQUE: La documentation Numpy indique l'utilisation de np.ndarray pour créer un tableau. Cependant, c’est la méthode recommandée.

Vous pouvez également créer un tableau numpy à partir d'un tuple.

Mathématique Operation sur un tableau

Vous pouvez effectuer des opérations mathématiques comme des additions, des soustractions, des divisions et des multiplications sur un tableau. La syntaxe est le nom du tableau suivi de l'opération (+.-,*,/) suivi de l'opérande

Mise en situation :

numpy_array_from_list + 10

Sortie :

array([11, 19, 18, 13])

Cette opération ajoute 10 à chaque élément du tableau numpy.

Forme du tableau

Vous pouvez vérifier la forme du tableau avec la forme de l'objet précédée du nom du tableau. De la même manière, vous pouvez vérifier le type avec dtypes.

import numpy as np
a  = np.array([1,2,3])
print(a.shape)
print(a.dtype)

(3,)
int64

Un entier est une valeur sans décimale. Si vous créez un tableau avec décimal, le type deviendra flottant.

#### Different type
b  = np.array([1.1,2.0,3.2])
print(b.dtype)

float64

Tableau à 2 dimensions

Vous pouvez ajouter une dimension avec un « », coma

Notez qu'il doit être entre parenthèses []

### 2 dimension
c = np.array([(1,2,3),
              (4,5,6)])
print(c.shape)
(2, 3)

Tableau à 3 dimensions

Une dimension supérieure peut être construite comme suit :

### 3 dimension
d = np.array([
    [[1, 2,3],
        [4, 5, 6]],
    [[7, 8,9],
        [10, 11, 12]]
])
print(d.shape)
(2, 2, 3)
Objectif Code
Créer un tableau tableau([1,2,3])
imprimer la forme tableau([.]).forme

Qu'est-ce que numpy.zeros() ?

numpy. zéros () ou np.zéros Python La fonction est utilisée pour créer une matrice pleine de zéros. numpy.zeros() dans Python peut être utilisé lorsque vous initialisez les poids lors de la première itération dans TensorFlow et d'autres tâches statistiques.

Syntaxe de la fonction numpy.zeros()

numpy.zeros(shape, dtype=float, order='C')

Python Paramètres numpy.zeros()

Ici,

  • Forme: est la forme du tableau numpy zéro
  • TypeD: est le type de données en zéros numpy. C'est facultatif. La valeur par défaut est float64
  • Order: La valeur par défaut est C, qui est un style de ligne essentiel pour numpy.zeros() dans Python.

Python exemple numpy.zeros()

import numpy as np
np.zeros((2,2))

Sortie :

array([[0., 0.],
          [0., 0.]])

Exemple de numpy zéro avec Datatype

import numpy as np
np.zeros((2,2), dtype=np.int16)

Sortie :

array([[0, 0],
         [0, 0]], dtype=int16)

Qu'est-ce que numpy.ones() ?

Fonction np.ones() est utilisé pour créer une matrice pleine de uns. numpy.ones() dans Python peut être utilisé lorsque vous initialisez les poids lors de la première itération dans TensorFlow et d'autres tâches statistiques.

Python numpy.ones() Syntaxe

numpy.ones(shape, dtype=float, order='C')

Python Paramètres numpy.ones()

Ici,

  • Forme: est la forme des np.ones Python tableau
  • TypeD: est le type de données en numpy. C'est facultatif. La valeur par défaut est float64
  • Order: La valeur par défaut est C, qui est un style de ligne essentiel.

Python numpy.ones() Tableau 2D avec exemple de type de données

import numpy as np
np.ones((1,2,3), dtype=np.int16)

Sortie :

array([[[1, 1, 1],        
       [1, 1, 1]]], dtype=int16)

fonction numpy.reshape() dans Python

Python Remodelage NumPy La fonction est utilisée pour façonner un tableau sans modifier ses données. Dans certains cas, vous devrez peut-être remodeler les données de large à longue. Vous pouvez utiliser la fonction np.reshape pour cela.

Syntaxe de np.reshape()

numpy.reshape(a, newShape, order='C')

Ici,

a: Tableau que vous souhaitez remodeler

nouvelle forme: Les nouveaux désirs se façonnent

Order: La valeur par défaut est C, qui est un style de ligne essentiel.

Exemple de remodelage NumPy

import numpy as np
e  = np.array([(1,2,3), (4,5,6)])
print(e)
e.reshape(3,2)

Sortie :

 // Before reshape
[[1 2 3] 
 [4 5 6]]
//After Reshape
array([[1, 2],       
	[3, 4],       
	[5, 6]])

numpy.flatten() dans Python

Python NumPy Aplatir La fonction est utilisée pour renvoyer une copie du tableau à une dimension. Lorsque vous utilisez un réseau neuronal comme convnet, vous devez aplatir le tableau. Vous pouvez utiliser les fonctions np.flatten() pour cela.

Syntaxe de np.flatten()

numpy.flatten(order='C')

Ici,
Order: La valeur par défaut est C, qui est un style de ligne essentiel.

Exemple d'aplatissement NumPy

e.flatten()

Sortie :

array([1, 2, 3, 4, 5, 6])

Qu'est-ce que numpy.hstack() dans Python?

Numpy.hstack est une fonction dans Python qui est utilisé pour empiler horizontalement des séquences de tableaux d'entrée afin de créer un seul tableau. Avec la fonction hstack(), vous pouvez ajouter des données horizontalement. C'est une fonction très pratique dans NumPy.

Étudions hstack dans Python avec un exemple :

Mise en situation :

## Horitzontal Stack
import numpy as np
f = np.array([1,2,3])
g = np.array([4,5,6])
print('Horizontal Append:', np.hstack((f, g)))

Sortie :

Horizontal Append: [1 2 3 4 5 6]

Qu'est-ce que numpy.vstack() dans Python?

Numpy.vstack est une fonction dans Python qui est utilisé pour empiler verticalement des séquences de tableaux d’entrée afin de créer un seul tableau. Avec la fonction vstack(), vous pouvez ajouter des données verticalement.

Étudions-le avec un exemple :

Mise en situation :

## Vertical Stack
import numpy as np
f = np.array([1,2,3])
g = np.array([4,5,6])
print('Vertical Append:', np.vstack((f, g)))

Sortie :

Vertical Append: [[1 2 3]
 [4 5 6]]

Après avoir étudié NumPy vstack et hstack, apprenons un exemple pour générer des nombres aléatoires dans NumPy.

Générer aléatoire Numbers en utilisant NumPy

Pour générer des nombres aléatoires pour la distribution gaussienne, utilisez :

numpy.random.normal(loc, scale, size)

Ici,

  • Loc: la moyenne. Le centre de distribution
  • Escaliers intérieurs: déviation standard.
  • Taille: nombre de retours

Mise en situation :

## Generate random nmber from normal distribution
normal_array = np.random.normal(5, 0.5, 10)
print(normal_array)			
[5.56171852 4.84233558 4.65392767 4.946659   4.85165567 5.61211317 4.46704244 5.22675736 4.49888936 4.68731125]

Si elle est tracée, la distribution sera similaire au tracé suivant

Exemple pour générer du aléatoire Numbers en utilisant NumPy
Exemple pour générer du aléatoire Numbers en utilisant NumPy

Fonction NumPy Asarray

La fonction asarray() est utilisée lorsque vous souhaitez convertir une entrée en tableau. L'entrée peut être une liste, un tuple, un ndarray, etc.

syntaxe:

numpy.asarray(data, dtype=None, order=None)[source]

Ici,

données: Données que vous souhaitez convertir en tableau

type: Il s'agit d'un argument facultatif. S'il n'est pas spécifié, le type de données est déduit des données d'entrée

Order: La valeur par défaut est C, qui est un style de ligne essentiel. L'autre option est F (style Fortan)

Mise en situation :

Considérons la matrice 2D suivante avec quatre lignes et quatre colonnes remplies par 1

import numpy as np
A = np.matrix(np.ones((4,4)))

Si vous souhaitez modifier la valeur de la matrice, vous ne pouvez pas. La raison en est qu’il n’est pas possible de modifier une copie.

np.array(A)[2]=2
print(A)			
[[1. 1. 1. 1.]
 [1. 1. 1. 1.] 
 [1. 1. 1. 1.] 
 [1. 1. 1. 1.]]

La matrice est immuable. Vous pouvez utiliser asarray si vous souhaitez ajouter des modifications au tableau d'origine. Voyons si un changement se produit lorsque vous souhaitez modifier la valeur des troisièmes lignes avec la valeur 2.

np.asarray(A)[2]=2
print(A)

Explication du code :

np.asarray(A) : convertit la matrice A en tableau

[2] : sélectionnez les troisièmes lignes

Sortie :

[[1. 1. 1. 1.] 
      [1. 1. 1. 1.] 
      [2. 2. 2. 2.] # new value 
      [1. 1. 1. 1.]]

Qu'est-ce que numpy.arange() ?

numpy.arange() est une fonction numpy intégrée qui renvoie un objet ndarray contenant des valeurs régulièrement espacées dans un intervalle défini. Par exemple, vous souhaitez créer des valeurs de 1 à 10 ; vous pouvez utiliser np.arange() dans Python la fonction.

syntaxe:

numpy.arange(start, stop, step, dtype)

Python Paramètres d'arrangement NumPy :

  • Accueille: Début de l'intervalle pour np.arange dans Python la fonction.
  • Arrêter: Fin de l'intervalle.
  • étape: Espacement entre les valeurs. L'étape par défaut est 1.
  • TypeD: Est un type de sortie de tableau pour NumPy arange dans Python.

Mise en situation :

import numpy np
np.arange(1, 11)

Sortie :

array([ 1,  2,  3,  4,  5,  6,  7,  8,  9, 10])

Mise en situation :

Si vous souhaitez modifier l'étape de cette fonction d'arrangement NumPy dans Python Par exemple, vous pouvez ajouter un troisième chiffre entre parenthèses. Cela changera l'étape.

import numpy np
np.arange(1, 14, 4)

Sortie :

array([ 1,  5,  9, 13])

Fonction NumPy Linspace

Linspace donne des échantillons régulièrement espacés.

syntaxe:

numpy.linspace(start, stop, num, endpoint)

Ici,

  • Accueille: Valeur de départ de la séquence
  • Arrêter: Valeur de fin de la séquence
  • En: Nombre d'échantillons à générer. La valeur par défaut est 50
  • Endpoint: Si True (par défaut), stop est la dernière valeur. Si False, la valeur d’arrêt n’est pas incluse.

Mise en situation :

Par exemple, il peut être utilisé pour créer 10 valeurs de 1 à 5 régulièrement espacées.

import numpy as np
np.linspace(1.0, 5.0, num=10)

Sortie :

array([1.        , 1.44444444, 1.88888889, 2.33333333, 2.77777778,       3.22222222, 3.66666667, 4.11111111, 4.55555556, 5.        ])

Si vous ne souhaitez pas inclure le dernier chiffre dans l'intervalle, vous pouvez définir le point final sur false.

np.linspace(1.0, 5.0, num=5, endpoint=False)

Sortie :

array([1. , 1.8, 2.6, 3.4, 4.2])

Fonction LogSpace NumPy dans Python

LogSpace renvoie des nombres espacés pairs sur une échelle logarithmique. Logspace a les mêmes paramètres que np.linspace.

syntaxe:

numpy.logspace(start, stop, num, endpoint)

Mise en situation :

np.logspace(3.0, 4.0, num=4)

Sortie :

array([ 1000. ,  2154.43469003,  4641.58883361, 10000.        ])

Enfin, si vous souhaitez vérifier la taille mémoire d'un élément d'un tableau, vous pouvez utiliser itemsize

x = np.array([1,2,3], dtype=np.complex128)
x.itemsize

Sortie :

16

Chaque élément prend 16 octets.

Indexation et découpage Python

Le découpage des données est trivial avec numpy. Nous allons découper la matrice « e ». Notez que, dans Python, vous devez utiliser les parenthèses pour renvoyer les lignes ou les colonnes
Mise en situation :

## Slice
import numpy as np
e  = np.array([(1,2,3), (4,5,6)])
print(e)
[[1 2 3]
 [4 5 6]]

N'oubliez pas qu'avec numpy, le premier tableau/colonne commence à 0.

## First column
print('First row:', e[0])

## Second col
print('Second row:', e[1])

Sortie :

First row: [1 2 3]
Second row: [4 5 6]

In Python, comme beaucoup d'autres langues,

  • Les valeurs avant la virgule représentent les lignes
  • La valeur sur les droits représente les colonnes.
  • Si vous souhaitez sélectionner une colonne, vous devez ajouter : avant l'index de la colonne.
  • : signifie que vous voulez toutes les lignes de la colonne sélectionnée.
print('Second column:', e[:,1])
Second column: [2 5]

Pour renvoyer les deux premières valeurs de la deuxième ligne. Vous utilisez : pour sélectionner toutes les colonnes jusqu'à la seconde

## Second Row, two values
  print(e[1, :2])			
  [4 5]

Fonctions statistiques dans Python

NumPy possède de nombreuses fonctions statistiques utiles pour trouver l'écart type et la variance minimum, maximum, centile, etc. à partir des éléments donnés dans le tableau. Les fonctions sont expliquées comme suit -

Numpy est équipé de la fonction statistique robuste répertoriée ci-dessous

Fonction Numpy
Min np.min()
Max np.max()
Médian np.mean()
Moyenne np.médian()
L'écart-type np.std()

Considérez le tableau suivant :

Mise en situation :

import numpy as np
normal_array = np.random.normal(5, 0.5, 10)
print(normal_array)

Sortie :

[5.56171852 4.84233558 4.65392767 4.946659   4.85165567 5.61211317 4.46704244 5.22675736 4.49888936 4.68731125]

Exemple de fonction statistique NumPy

### Min 
print(np.min(normal_array))

### Max 
print(np.max(normal_array))

### Mean 
print(np.mean(normal_array))

### Median
print(np.median(normal_array))

### Sd
print(np.std(normal_array))

Sortie :

4.467042435266913
5.612113171990201
4.934841002270593
4.846995625786663
0.3875019367395316

Qu'est-ce que le produit scalaire numpy ?

Produit Numpy.dot est une bibliothèque puissante pour le calcul matriciel. Par exemple, vous pouvez calculer le produit scalaire avec np.dot. Le produit Numpy.dot est le produit scalaire de a et b. numpy.dot() dans Python gère les tableaux 2D et effectue des multiplications matricielles.

syntaxe:

numpy.dot(x, y, out=None)

Paramètres

Ici,

x, y: Tableaux d'entrée. x et y doivent tous deux être 1-D ou 2-D pour que la fonction np.dot() fonctionne

ande: Il s'agit de l'argument de sortie du scalaire du tableau 1D à renvoyer. Sinon, ndarray devrait être renvoyé.

Retours de produits

La fonction numpy.dot() dans Python renvoie un produit scalaire de deux tableaux x et y. La fonction dot() renvoie un scalaire si x et y sont tous deux 1-D ; sinon, elle renvoie un tableau. Si 'out' est donné, il est renvoyé.

Soulève

Produit scalaire dans Python lève une exception ValueError si la dernière dimension de x n'a pas la même taille que l'avant-dernière dimension de y.

Mise en situation :

## Linear algebra
### Dot product: product of two arrays
f = np.array([1,2])
g = np.array([4,5])
### 1*4+2*5
np.dot(f, g)

Sortie :

14

Multiplication matricielle dans Python

La fonction Numpy matmul() est utilisée pour renvoyer le produit matriciel de 2 tableaux. Voici comment ça marche

1) Tableaux 2D, il renvoie un produit normal

2) Dimensions > 2, le produit est traité comme un empilement de matrice

3) Le tableau 1D est d'abord promu en matrice, puis le produit est calculé

syntaxe:

numpy.matmul(x, y, out=None)

Ici,

x, y: Tableaux d'entrée. scalaires non autorisés

ande: Il s'agit d'un paramètre facultatif. Habituellement, la sortie est stockée dans ndarray

Mise en situation :

De la même manière, vous pouvez calculer la multiplication des matrices avec np.matmul

### Matmul: matruc product of two arrays
h = [[1,2],[3,4]] 
i = [[5,6],[7,8]] 
### 1*5+2*7 = 19
np.matmul(h, i)

Sortie :

array([[19, 22],       
            [43, 50]])

Déterminant

Enfin et surtout, si vous devez calculer le déterminant, vous pouvez utiliser np.linalg.det(). Notez que numpy s'occupe de la dimension.

Mise en situation :

## Determinant 2*2 matrix
### 5*8-7*6np.linalg.det(i)

Sortie :

-2.000000000000005

Résumé

  • Python est une bibliothèque open source disponible dans Python, qui aide en mathématiques, scientifiques, ingénierie et programmation en science des données.
  • numpy.zeros() ou np.zeros Python La fonction est utilisée pour créer une matrice pleine de zéros.
  • numpy.ones() dans Python peut être utilisé lorsque vous initialisez les poids lors de la première itération dans TensorFlow et d'autres tâches statistiques.
  • Python La fonction NumPy Reshape est utilisée pour façonner un tableau sans modifier ses données.
  • Python La fonction NumPy Flatten est utilisée pour renvoyer une copie du tableau à une dimension.
  • Numpy.hstack est une fonction dans Python qui est utilisé pour empiler horizontalement des séquences de tableaux d'entrée afin de créer un seul tableau.
  • Numpy.vstack est une fonction dans Python qui est utilisé pour empiler verticalement des séquences de tableaux d’entrée afin de créer un seul tableau.
  • numpy.arange() est une fonction numpy intégrée qui renvoie un objet ndarray contenant des valeurs régulièrement espacées dans un intervalle défini.
  • Le produit Numpy.dot est une bibliothèque puissante pour le calcul matriciel.
  • La fonction Numpy matmul() est utilisée pour renvoyer le produit matriciel de 2 tableaux.