Maison  >  Article  >  développement back-end  >  Obtenez une compréhension plus approfondie des principales fonctionnalités et avantages de la bibliothèque numpy

Obtenez une compréhension plus approfondie des principales fonctionnalités et avantages de la bibliothèque numpy

王林
王林original
2024-01-19 09:28:05580parcourir

Obtenez une compréhension plus approfondie des principales fonctionnalités et avantages de la bibliothèque numpy

Une compréhension approfondie des fonctionnalités et des avantages de base de la bibliothèque numpy nécessite des exemples de code spécifiques

Python est un langage de programmation open source de haut niveau et numpy est une bibliothèque d'extension importante pour python. Numpy est l'abréviation de Numerical Python. Il fournit un puissant objet tableau multidimensionnel et diverses fonctions opérationnelles correspondantes. C'est l'une des bibliothèques de base du calcul scientifique Python. Dans des domaines tels que le traitement des données, l'apprentissage automatique et l'apprentissage profond, numpy joue un rôle important. Cet article fournira une introduction approfondie aux principales fonctionnalités et avantages de la bibliothèque numpy, avec des exemples de code spécifiques.

  1. Objet tableau multidimensionnel ndarray

La structure de données de base de numpy est ndarray (tableau à N dimensions), qui est un objet tableau multidimensionnel efficace. Les types d'éléments des tableaux ndarray doivent être les mêmes, qui peuvent être des entiers, des nombres à virgule flottante, etc., et ils sont stockés en continu en mémoire. Le tableau ndarray possède plusieurs attributs importants, notamment la forme (dimension du tableau), le type (type d'élément), la taille (nombre total d'éléments) et ndim (dimension du tableau).

Ce qui suit est un exemple simple de création d'un tableau ndarray :

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

Le résultat de sortie est :

[1 2 3]
(3,)
int64

Nous pouvons également modifier les dimensions du tableau ndarray via la méthode reshape() :

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

Le résultat de sortie est :

(2, 3)
[[1 2]
 [3 4]
 [5 6]]
  1. Opération vectorielle

Une autre fonctionnalité de numpy est l'opération de vectorisation, qui est une fonctionnalité extrêmement importante. Elle améliore non seulement considérablement l'efficacité du calcul, mais simplifie également la difficulté d'écriture de code. Par exemple, nous voulons ajouter un certain nombre à chaque élément d'un tableau ndarray. Si nous n'utilisons pas d'opérations de vectorisation, nous devons écrire une boucle de ce type qui est souvent extrêmement inefficace et difficile à maintenir. En utilisant l'opération de vectorisation de numpy, nous n'avons besoin d'écrire qu'une seule ligne de code pour y parvenir :

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

Le résultat de sortie est :

[2 3 4]
  1. Broadcast

La fonction de diffusion de Numpy nous permet de calculer des tableaux de différentes formes, ce qui est également le clé des opérations de vectorisation de numpy. Les règles de diffusion sont très simples : si les longueurs des axes des dimensions du bord arrière (c'est-à-dire les dimensions à partir de la fin) de deux tableaux correspondent, ou si la longueur de l'un d'eux est 1, ils sont considérés comme compatibles avec la diffusion. La diffusion se fera sur des dimensions manquantes ou de longueur 1.

Ce qui suit est un exemple simple de diffusion :

a = np.arange(4)
b = np.ones(3)
c = a[:, np.newaxis] + b
print(c)

Le résultat de sortie est :

[[1. 1. 1.]
 [2. 2. 2.]
 [3. 3. 3.]
 [4. 4. 4.]]

Dans l'exemple ci-dessus, nous avons créé un tableau unidimensionnel a et un tableau unidimensionnel b avec des dimensions différentes. Afin de leur permettre d'effectuer des opérations de vectorisation, nous utilisons la fonctionnalité de diffusion pour ajouter une nouvelle dimension au tableau a afin que les dimensions de a et b soient les mêmes.

  1. Fonction ufunc

La fonction ufunc de numpy est un ensemble de fonctions qui fonctionnent sur les tableaux ndarray, notamment : ajouter (ajouter), soustraire (soustraire), multiplier (multiplier), diviser (diviser) et trouver le reste (reste) etc. La particularité de ces fonctions est qu'elles peuvent opérer sur l'ensemble du tableau sans boucle. De plus, la fonction ufunc prend également en charge la fonction de diffusion, qui peut fonctionner sur deux tableaux de formes différentes, ce qui est très pratique.

Voici un exemple simple d'une fonction ufunc :

a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
c = np.add(a, b)
print(c)

Le résultat est :

[5 7 9]
  1. Découpage et indexation

Le découpage et l'indexation dans numpy sont similaires au découpage et à l'indexation en python. Étant donné que les tableaux ndarray sont multidimensionnels, le découpage et l'indexation de numpy sont plus flexibles. Nous pouvons utiliser l'instruction a[i] pour accéder au i-ème élément du tableau numpy, ou nous pouvons utiliser a[i:j] pour obtenir le i-ème au j-ème élément du tableau. De plus, nous pouvons utiliser des ellipses (...) pour représenter toutes les autres dimensions. Pour les tableaux multidimensionnels, nous pouvons utiliser a[i, j] pour obtenir les éléments de la i-ème ligne et de la j-ème colonne, a[:, j] pour obtenir tous les éléments de la j-ème colonne, a [i, :] pour obtenir tous les éléments de la i-ième ligne, etc.

Ce qui suit est un exemple simple de découpage et d'indexation d'un tableau multidimensionnel :

a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(a[0, 1])
print(a[1, :])
print(a[:, 0:2])

Le résultat est :

2
[4 5 6]
[[1 2]
 [4 5]
 [7 8]]
  1. Génération de nombres aléatoires

Numpy fournit également un certain nombre de fonctions pour générer des nombres aléatoires, notamment : np.random .rand(), np.random.randn(), np.random.randint(), np.random.shuffle(), etc. Ces fonctions peuvent être utilisées dans des domaines tels que l'analyse des données, la simulation et l'apprentissage automatique.

Ce qui suit est un exemple simple de génération de nombres aléatoires :

a = np.random.rand(3)
b = np.random.randn(3)
c = np.random.randint(0, 10, size=(2, 3))
print(a)
print(b)
print(c)

Le résultat est :

[0.1688015  0.15220492 0.44022309]
[-0.09097023  1.19200587  1.17187612]
[[5 8 8]
 [0 9 1]]

Résumé

numpy est une bibliothèque très puissante et flexible avec de nombreuses fonctionnalités et avantages de base, notamment : des objets de tableau multidimensionnels efficaces, Opérations de vectorisation et diffusion, fonctions ufunc, découpage et indexation, génération de nombres aléatoires, etc. Dans les domaines liés à la science des données et à l'intelligence artificielle, numpy joue un rôle important et irremplaçable. Nous devons comprendre en profondeur l'utilisation et la mise en œuvre du code de numpy, maîtriser ses principes de base et ses opérations courantes, et les appliquer dans le travail et les études réels pour améliorer l'efficacité et la précision.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn