Science des données

Tutoriel Python NumPy

Tutoriel Python NumPy
Dans cette leçon sur la bibliothèque Python NumPy, nous verrons comment cette bibliothèque nous permet de gérer de puissants objets de tableau à N dimensions avec des fonctions sophistiquées présentes pour manipuler et opérer sur ces tableaux. Pour compléter cette leçon, nous couvrirons les sections suivantes :

Qu'est-ce que le package Python NumPy?

En termes simples, NumPy signifie 'Numerical Python' et c'est ce qu'il vise à remplir, pour permettre des opérations numériques complexes effectuées sur des objets de tableau à N dimensions très facilement et de manière intuitive. C'est la bibliothèque de base utilisée dans calcul scientifique, avec des fonctions présentes pour effectuer des opérations algébriques linéaires et des opérations statistiques.

L'un des concepts les plus fondamentaux (et attrayants) de NumPy est son utilisation d'objets de tableau à N dimensions. Nous pouvons prendre ce tableau comme un simple collection de lignes et de colonnes, comme un fichier MS-Excel. Il est possible de convertir une liste Python en un tableau NumPy et d'utiliser des fonctions dessus.

Représentation du tableau NumPy

Juste une remarque avant de commencer, nous utilisons un environnement virtuel pour cette leçon que nous avons fait avec la commande suivante :

python -m virtualenv numpy
source numpy/bin/activer

Une fois l'environnement virtuel actif, nous pouvons installer la bibliothèque numpy dans l'environnement virtuel afin que les exemples que nous créons ensuite puissent être exécutés :

pip installer numpy

Nous voyons quelque chose comme ceci lorsque nous exécutons la commande ci-dessus :

Testons rapidement si le package NumPy a été correctement installé avec l'extrait de code court suivant :

importer numpy en tant que np
a = np.tableau([1,2,3])
imprimer(a)

Une fois que vous avez exécuté le programme ci-dessus, vous devriez voir la sortie suivante :

On peut aussi avoir des tableaux multidimensionnels avec NumPy :

multi_dimension = np.tableau([(1, 2, 3), (4, 5, 6)])
imprimer (multi_dimension)

Cela produira une sortie comme :

[[1 2 3]
[4 5 6]]

Vous pouvez également utiliser Anaconda pour exécuter ces exemples, ce qui est plus facile et c'est ce que nous avons utilisé ci-dessus. Si vous souhaitez l'installer sur votre machine, regardez la leçon qui décrit "Comment installer Anaconda Python sur Ubuntu 18.04 LTS" et partagez vos commentaires. Passons maintenant aux différents types d'opérations pouvant être effectuées avec les tableaux Python NumPy.

Utiliser des tableaux NumPy sur des listes Python

Il est important de demander que lorsque Python a déjà une structure de données sophistiquée pour contenir plusieurs éléments, pourquoi avons-nous besoin de tableaux NumPy ?? Les tableaux NumPy sont préféré aux listes Python pour les raisons suivantes :

Laissez-nous prouver que les tableaux NumPy occupent moins de mémoire. Cela peut être fait en écrivant un programme Python très simple :

importer numpy en tant que np
heure d'importation
importer le système
liste_python = plage (500)
imprimer(sys.getsizeof(1) * len(python_list))
numpy_arr = np.ranger (500)
print(numpy_arr.taille * numpy_arr.taille de l'article)

Lorsque nous exécutons le programme ci-dessus, nous obtenons la sortie suivante :

14000
4000

Cela montre que la même liste de taille est plus de 3 fois en taille par rapport au tableau NumPy de même taille.

Exécution d'opérations NumPy

Dans cette section, jetons un coup d'œil rapide sur les opérations qui peuvent être effectuées sur les tableaux NumPy.

Recherche de dimensions dans un tableau

Comme le tableau NumPy peut être utilisé dans n'importe quel espace dimensionnel pour contenir des données, nous pouvons trouver la dimension d'un tableau avec l'extrait de code suivant :

importer numpy en tant que np
numpy_arr = np.tableau([(1,2,3),(4,5,6)])
print(numpy_arr.ndim)

Nous verrons la sortie comme "2" car il s'agit d'un tableau à 2 dimensions.

Trouver le type de données des éléments dans le tableau

Nous pouvons utiliser le tableau NumPy pour contenir n'importe quel type de données. Voyons maintenant le type de données des données qu'un tableau contient :

autre_arr = np.array([('awe', 'b', 'cat')])
print(autre_arr.type)
numpy_arr = np.tableau([(1,2,3),(4,5,6)])
print(numpy_arr.type)

Nous avons utilisé différents types d'éléments dans l'extrait de code ci-dessus. Voici la sortie que ce script affichera :

int64

Cela se produit lorsque les caractères sont interprétés comme des caractères Unicode et le second est évident.

Remodeler les éléments d'un tableau

Si un tableau NumPy se compose de 2 lignes et 4 colonnes, il peut être remodelé pour contenir 4 lignes et 2 colonnes. Écrivons un extrait de code simple pour la même chose :

original = np.tableau([('1', 'b', 'c', '4'), ('5', 'f', 'g', '8')])
imprimer (original)
remodelé = original.remodeler (4, 2)
imprimer (reformé)

Une fois que nous avons exécuté l'extrait de code ci-dessus, nous obtiendrons la sortie suivante avec les deux tableaux imprimés à l'écran :

[['1' 'b' 'c' '4']
['5' 'f' 'g' '8']]
[['1' 'b']
['c' '4']
['5' 'f']
['g' '8']]

Notez comment NumPy a pris soin de déplacer et d'associer les éléments aux nouvelles lignes.

Opérations mathématiques sur les éléments d'un tableau

Effectuer des opérations mathématiques sur les éléments d'un tableau est très simple. Nous allons commencer par écrire un simple extrait de code pour connaître le maximum, le minimum et l'addition de tous les éléments du tableau. Voici l'extrait de code :

numpy_arr = np.tableau([(1, 2, 3, 4, 5)])
print(numpy_arr.max())
print(numpy_arr.min())
print(numpy_arr.somme())
print(numpy_arr.moyenne())
imprimer (np.sqrt(numpy_arr))
imprimer (np.std(numpy_arr))

Dans les 2 dernières opérations ci-dessus, nous avons également calculé la racine carrée et l'écart type de chaque élément du tableau. L'extrait ci-dessus fournira la sortie suivante :

5
1
15
3.0
[[1.   1.41421356   1.73205081   2.   2.23606798]]
1.4142135623730951

Conversion de listes Python en tableaux NumPy

Même si vous avez utilisé des listes Python dans vos programmes existants et que vous ne souhaitez pas modifier tout ce code mais souhaitez toujours utiliser les tableaux NumPy dans votre nouveau code, il est bon de savoir que nous pouvons facilement convertir un Python liste à un tableau NumPy. Voici un exemple:

# Créer 2 nouvelles listes hauteur et poids
hauteur = [2.37, 2.87, 1.52, 1.51, 1.70, 2.05]
poids = [91.65, 97.52, 68.25, 88.98, 86.18, 88.45]
# Créez 2 tableaux numpy à partir de la hauteur et du poids
np_hauteur = np.tableau (hauteur)
np_poids = np.tableau (poids)

Juste pour vérifier, nous pouvons maintenant imprimer le type d'une des variables :

print(type(np_height))

Et cela montrera :

Nous pouvons maintenant effectuer une opération mathématique sur tous les éléments à la fois. Voyons comment nous pouvons calculer l'IMC des personnes :

# Calculer l'imc
bmi = poids_np / hauteur_np ** 2
# Imprimer le résultat
imprimer (imc)

Cela montrera l'IMC de toutes les personnes calculé élément par élément :

[16.31682957 11.8394056  29.54033934 39.02460418 29.8200692  21.04699584]

N'est-ce pas si facile et pratique? Nous pouvons même filtrer les données facilement avec une condition à la place d'un index entre crochets :

imc[imc > 25]

Cela donnera :

tableau([29.54033934, 39.02460418, 29.8200692 ])

Créez des séquences et des répétitions aléatoires avec NumPy

Avec de nombreuses fonctionnalités présentes dans NumPy pour créer des données aléatoires et les organiser sous une forme requise, les tableaux NumPy sont plusieurs fois utilisés pour générer un ensemble de données de test à de nombreux endroits, y compris à des fins de débogage et de test. Par exemple, si vous souhaitez créer un tableau de 0 à n, nous pouvons utiliser l'arrange (notez le seul 'r') comme l'extrait donné :

imprimer (np.ranger(5))

Cela renverra la sortie sous la forme :

[0 1 2 3 4]

La même fonction peut être utilisée pour fournir une valeur inférieure afin que le tableau commence à partir d'autres nombres que 0 :

imprimer (np.ranger (4, 12))

Cela renverra la sortie sous la forme :

[ 4  5  6  7  8  9 10 11]

Les nombres n'ont pas besoin d'être continus, ils peuvent sauter une étape fixe comme :

imprimer (np.ranger (4, 14, 2))

Cela renverra la sortie sous la forme :

[ 4 6 8 10 12]

Nous pouvons également obtenir les nombres dans un ordre décroissant avec une valeur de saut négative :

imprimer (np.range(14, 4, -1))

Cela renverra la sortie sous la forme :

[14 13 12 11 10 9 8 7 6 5]

Il est possible de financer n nombres entre x et y avec un espace égal avec la méthode linspace, voici l'extrait de code pour le même :

np.linspace(start=10, stop=70, num=10, dtype=int)

Cela renverra la sortie comme:

tableau([10, 16, 23, 30, 36, 43, 50, 56, 63, 70])

Veuillez noter que les éléments de sortie ne sont pas également espacés. NumPy fait de son mieux pour le faire mais vous n'avez pas besoin de vous y fier car il arrondit.

Enfin, regardons comment nous pouvons générer un ensemble de séquences aléatoires avec NumPy qui est l'une des fonctions les plus utilisées à des fins de test. Nous passerons une plage de nombres à NumPy qui servira de point initial et final pour les nombres aléatoires :

imprimer (np.Aléatoire.randint(0, 10, taille=[2,2]))

L'extrait ci-dessus crée un tableau NumPy 2 par 2 dimensions qui contiendra des nombres aléatoires entre 0 et 10. Voici l'exemple de sortie :

[[0 4]
[8 3]]

Veuillez noter que les nombres sont aléatoires, la sortie peut différer même entre les 2 passages sur la même machine.

Conclusion

Dans cette leçon, nous avons examiné divers aspects de cette bibliothèque de calcul que nous pouvons utiliser avec Python pour calculer des problèmes mathématiques simples et complexes pouvant survenir dans divers cas d'utilisation. NumPy est l'une des bibliothèques de calcul les plus importantes en matière de l'ingénierie des données et le calcul de données numériques, définitivement une compétence que nous devons avoir à notre actif.

Veuillez partager vos commentaires sur la leçon sur Twitter avec @sbmaggarwal et @LinuxHint.

Tutoriel OpenTTD
OpenTTD est l'un des jeux de simulation d'entreprise les plus populaires. Dans ce jeu, vous devez créer une merveilleuse entreprise de transport. Cepe...
SuperTuxKart pour Linux
SuperTuxKart est un excellent titre conçu pour vous apporter l'expérience Mario Kart gratuitement sur votre système Linux. C'est assez stimulant et am...
Tutoriel Bataille pour Wesnoth
The Battle for Wesnoth est l'un des jeux de stratégie open source les plus populaires auxquels vous pouvez jouer en ce moment. Non seulement ce jeu es...