Maison  >  Article  >  développement back-end  >  Conseils | C'est probablement le meilleur tutoriel graphique NumPy que j'ai jamais vu !

Conseils | C'est probablement le meilleur tutoriel graphique NumPy que j'ai jamais vu !

Python当打之年
Python当打之年avant
2023-08-10 16:08:121133parcourir


NumPy est un progiciel important en Python pour l'analyse de données, l'apprentissage automatique et le calcul scientifique. Cela simplifie grandement le fonctionnement et le traitement des vecteurs et des matrices. De nombreux progiciels de traitement de données pour Python s'appuient sur NumPy comme élément central de leur infrastructure (comme scikit-learn, SciPy, pandas et tensorflow). En plus des fonctions de découpage et de découpage des données, la maîtrise de numpy donne également aux développeurs un avantage lorsqu'ils utilisent diverses bibliothèques de traitement de données pour déboguer et gérer des cas d'utilisation complexes.


Conseils | C'est probablement le meilleur tutoriel graphique NumPy que j'ai jamais vu !


Dans cet article, nous présenterons les principales utilisations de NumPy et comment il présente différents types de données (tableaux, images, texte, etc.). devenir une entrée pour le modèle d’apprentissage automatique.


Opérations sur les tableaux dans NumPy



Créer un tableau

Nous pouvons créer un tableau NumPy (alias le puissant ndarray) en passant une liste python dans np.array(). Dans l'exemple suivant, le tableau créé est affiché à droite. Normalement, nous voulons que NumPy initialise la valeur du tableau pour nous. Pour cela, NumPy fournit des fonctions telles que ones(), zeros() et random.random(. ). méthode. Il suffit de transmettre le nombre d'éléments :


Une fois le tableau créé, nous pouvons en faire des applications intéressantes, qui seront expliquées ci-dessous.


Opérations arithmétiques sur les tableaux


Créons deux tableaux NumPy, appelés data et ones :


Conseils | C'est probablement le meilleur tutoriel graphique NumPy que j'ai jamais vu !


Pour calculer deux tableaux Pour l'addition, tapez simplement des données + un pour ajouter les données à la position correspondante (c'est-à-dire ajouter chaque ligne de données). Cette opération est plus concise que le code de méthode de bouclage pour lire le tableau.


Conseils | C'est probablement le meilleur tutoriel graphique NumPy que j'ai jamais vu !


Bien sûr, sur cette base, nous pouvons également mettre en œuvre des opérations telles que la soustraction, la multiplication et la division :


Conseils | C'est probablement le meilleur tutoriel graphique NumPy que j'ai jamais vu !


Dans de nombreux cas, nous souhaitons effectuer des opérations sur des tableaux et des valeurs uniques (également appelées opérations entre vecteurs et scalaires). Par exemple : si le tableau représente la distance en miles, notre objectif est de la convertir en kilomètres. Cela peut s'écrire simplement sous forme de données * 1.6 :


Conseils | C'est probablement le meilleur tutoriel graphique NumPy que j'ai jamais vu !


NumPy sait grâce à la diffusion de tableau que cette opération nécessite de multiplier chaque élément du tableau.


Opération de découpage de tableau


Nous pouvons indexer et découper des tableaux NumPy comme les opérations de liste Python, comme indiqué ci-dessous :


Conseils | C'est probablement le meilleur tutoriel graphique NumPy que j'ai jamais vu !


Fonctions d'agrégation


Idéalement, il y a aussi des fonctions d'agrégation, qui peuvent compresser les données et compter certaines valeurs de caractéristiques dans le tableau :


Conseils | C'est probablement le meilleur tutoriel graphique NumPy que j'ai jamais vu !


En plus des fonctions telles que min, max et sum, il existe également une moyenne ( moyenne), prod (multiplication des données) calcule le produit de tous les éléments, std (écart type), etc. Tous les exemples ci-dessus concernent des vecteurs à une dimension. Au-delà de cela, un élément clé de la beauté de NumPy réside dans sa capacité à appliquer toutes les fonctions que nous avons vues jusqu'à présent à n'importe quelle dimension.

Opérations matricielles dans NumPy





Créer une matrice


On peut créer une matrice en passant un deux- liste dimensionnelle vers Numpy.

np.array([[1,2],[3,4]])

Conseils | C'est probablement le meilleur tutoriel graphique NumPy que j'ai jamais vu !


De plus, vous pouvez également utiliser les ones(), les zeros() et random.random() mentionnés ci-dessus pour créer des matrices, il suffit de passer un tuple pour décrire les dimensions de la matrice :


Conseils | C'est probablement le meilleur tutoriel graphique NumPy que j'ai jamais vu !


Opérations arithmétiques sur les matrices


Pour deux matrices de même taille, on peut utiliser des opérateurs arithmétiques (+-*/) pour les additionner ou les multiplier . NumPy utilise des opérations par position pour de telles opérations :


Conseils | C'est probablement le meilleur tutoriel graphique NumPy que j'ai jamais vu !


Pour des matrices de tailles différentes, nous ne pouvons effectuer ces opérations arithmétiques que lorsque les dimensions des deux matrices sont identiques à 1 (par exemple, la matrice n'a qu'une seule colonne ou une seule ligne). Dans ce cas, NumPy utilise des règles de diffusion). (diffusion) pour le traitement des opérations :


Conseils | C'est probablement le meilleur tutoriel graphique NumPy que j'ai jamais vu !


Une grande différence avec les opérations arithmétiques est la multiplication matricielle à l'aide du produit scalaire. NumPy fournit la méthode dot(), qui peut être utilisée pour effectuer des opérations de produits scalaires entre matrices :


Conseils | C'est probablement le meilleur tutoriel graphique NumPy que j'ai jamais vu !


Les dimensions de la matrice sont ajoutées au bas de la figure ci-dessus pour souligner que les deux les matrices de l'opération sont dans la colonne et les lignes doivent être égales. Cette opération peut être schématisée ainsi :


Conseils | C'est probablement le meilleur tutoriel graphique NumPy que j'ai jamais vu !


Découpage et agrégation de matrices


Les fonctions d'indexation et de découpage deviennent plus utiles lors de la manipulation de matrices. Les données peuvent être découpées à l'aide d'opérations d'index sur différentes dimensions.


Conseils | C'est probablement le meilleur tutoriel graphique NumPy que j'ai jamais vu !


Nous pouvons agréger des matrices tout comme nous agrégeons des vecteurs :


Conseils | C'est probablement le meilleur tutoriel graphique NumPy que j'ai jamais vu !


Non seulement nous pouvons agréger le tout dans la valeur matricielle, vous pouvez également précisez-le à l'aide du paramètre axis Agrégation de lignes et de colonnes :


Conseils | C'est probablement le meilleur tutoriel graphique NumPy que j'ai jamais vu !


Transposition et reconstruction de matrices


Lors du traitement de matrices, il est souvent nécessaire de transposer la matrice. Une situation courante consiste à calculer le produit scalaire de deux matrices. La propriété T d'un tableau NumPy peut être utilisée pour obtenir la transposée d'une matrice.


Conseils | C'est probablement le meilleur tutoriel graphique NumPy que j'ai jamais vu !


Dans des cas d'utilisation plus complexes, vous devrez peut-être modifier les dimensions d'une matrice. Ceci est courant dans les applications d'apprentissage automatique, par exemple, si la forme de la matrice d'entrée du modèle est différente de l'ensemble de données, vous pouvez utiliser la méthode reshape() de NumPy. Transmettez simplement les nouvelles dimensions requises de la matrice. Vous pouvez également passer -1 et NumPy peut déduire les dimensions correctes en fonction de votre matrice :


Conseils | C'est probablement le meilleur tutoriel graphique NumPy que j'ai jamais vu !


Toutes les fonctions ci-dessus sont applicables aux données multidimensionnelles, et sa structure de données centrale est appelée ndarray (tableau à N dimensions).


Conseils | C'est probablement le meilleur tutoriel graphique NumPy que j'ai jamais vu !


Souvent, changer la dimension consiste simplement à ajouter une virgule au paramètre de la fonction NumPy, comme indiqué ci-dessous :


Conseils | C'est probablement le meilleur tutoriel graphique NumPy que j'ai jamais vu !





Exemple d'application de formule dans NumPy




Un cas d'utilisation clé de NumPy consiste à implémenter des formules mathématiques qui fonctionnent avec des matrices et des vecteurs. C'est aussi la raison pour laquelle NumPy est couramment utilisé en Python. Par exemple, l'erreur quadratique moyenne est au cœur des modèles d'apprentissage automatique supervisés pour traiter les problèmes de régression :


Conseils | C'est probablement le meilleur tutoriel graphique NumPy que j'ai jamais vu !


L'erreur quadratique moyenne peut être facilement implémentée dans NumPy :


Conseils | C'est probablement le meilleur tutoriel graphique NumPy que j'ai jamais vu !


L'avantage de ceci est que numpy n'a pas besoin de prendre en compte les valeurs spécifiques contenues dans les prédictions et les étiquettes. DigestBacteria passera en revue les quatre opérations de la ligne de code ci-dessus à travers un exemple :


Conseils | C'est probablement le meilleur tutoriel graphique NumPy que j'ai jamais vu !


Les vecteurs de prédictions et d'étiquettes contiennent trois valeurs. Cela signifie que la valeur de n est 3. Après avoir effectué la soustraction, on se retrouve avec des valeurs comme celle-ci :


Conseils | C'est probablement le meilleur tutoriel graphique NumPy que j'ai jamais vu !


On peut alors calculer le carré de chaque valeur dans le vecteur :


Conseils | C'est probablement le meilleur tutoriel graphique NumPy que j'ai jamais vu !


Maintenant, nous additionnons ces valeurs :


Conseils | C'est probablement le meilleur tutoriel graphique NumPy que j'ai jamais vu !


pour enfin obtenir la valeur d'erreur et le score de qualité du modèle pour cette prédiction.





Utilisez NumPy pour représenter les données quotidiennes




quotidiennement Comment représenter les types de données avec lesquelles vous entrez en contact, telles que des feuilles de calcul, des images, de l'audio, etc. ? Numpy peut résoudre ce problème.


Tableaux et feuilles de calcul


Les feuilles de calcul ou les feuilles de données sont toutes deux des matrices bidimensionnelles. Chaque feuille de calcul de la feuille de calcul peut être sa propre variable. Une structure similaire en Python est le dataframe pandas, qui est en fait construit à l'aide de NumPy.


Conseils | C'est probablement le meilleur tutoriel graphique NumPy que j'ai jamais vu !


Audio et séries temporelles


Les fichiers audio sont des tableaux unidimensionnels d'échantillons. Chaque échantillon est un nombre qui représente un petit segment du signal audio. L'audio de qualité CD peut contenir 44 100 échantillons par seconde, chaque échantillon étant un nombre entier compris entre -65 535 et 65 536. Cela signifie que si vous disposez d'un fichier WAVE de qualité CD de 10 secondes, vous pouvez le charger dans un tableau NumPy d'une longueur de 10 * 44 100 = 441 000 échantillons. Vous souhaitez extraire la première seconde de l'audio ? Chargez simplement le fichier dans un tableau NumPy que nous appelons audio et interceptons l'audio[:44100].


Ce qui suit est un fichier audio :


Conseils | C'est probablement le meilleur tutoriel graphique NumPy que j'ai jamais vu !


Il en va de même pour les données de séries chronologiques (par exemple, une séquence de cours boursiers au fil du temps).


Image


Une image est une matrice de pixels de taille (hauteur × largeur). Si l'image est en noir et blanc (également appelée image en niveaux de gris), chaque pixel peut être représenté par un seul nombre (généralement entre 0 (noir) et 255 (blanc)). Si vous traitez une image, vous pouvez recadrer une zone de 10 x 10 pixels dans le coin supérieur gauche de l'image en utilisant image[:10,:10] dans NumPy.


Ceci est un extrait d'un fichier image :


Conseils | C'est probablement le meilleur tutoriel graphique NumPy que j'ai jamais vu !


Si l'image est en couleur, chaque pixel est représenté par trois nombres : rouge, vert et bleu. Dans ce cas, nous avons besoin d’une troisième dimension (puisque chaque cellule ne peut contenir qu’un seul nombre). L'image couleur est donc représentée par un ndarray de dimensions (hauteur x largeur x 3).


Conseils | C'est probablement le meilleur tutoriel graphique NumPy que j'ai jamais vu !


Langue


Les choses sont différentes si nous traitons du texte. La représentation numérique d'un texte nécessite deux étapes : la création d'un vocabulaire (une liste de tous les mots uniques connus du modèle) et l'intégration. Regardons les étapes pour représenter numériquement cette citation ancienne (traduite) : « Les bardes qui m'ont précédé ont-ils laissé un thème méconnu


Le modèle doit être formé sur une grande quantité de texte avant de pouvoir le faire ? représenter numériquement les vers du poète de ce champ de bataille. Nous pouvons laisser le modèle traiter un petit ensemble de données et utiliser cet ensemble de données pour construire un vocabulaire (71 290 mots) :


Conseils | C'est probablement le meilleur tutoriel graphique NumPy que j'ai jamais vu !


La phrase peut ensuite être divisée en une série de jetons "mots" (mots ou parties de mots basés sur des règles communes) :


Conseils | C'est probablement le meilleur tutoriel graphique NumPy que j'ai jamais vu !


Ensuite, nous remplaçons chaque mot par son identifiant du vocabulaire :


Conseils | C'est probablement le meilleur tutoriel graphique NumPy que j'ai jamais vu !


Ces identifiants ne fournissent toujours pas d'informations précieuses au modèle. Par conséquent, avant d'introduire une séquence de mots dans le modèle, le jeton/mot doit être remplacé par une intégration (dans ce cas, en utilisant une intégration word2vec à 50 dimensions) :


Conseils | C'est probablement le meilleur tutoriel graphique NumPy que j'ai jamais vu !


Vous pouvez voir que les dimensions de ce tableau NumPy sont [embedding_dimension x séquence_length].


En pratique, ces valeurs ne ressemblent pas forcément à ceci, mais je les présente ainsi par souci de cohérence visuelle. Pour des raisons de performances, les modèles d'apprentissage profond ont tendance à conserver la première dimension de la taille du lot (car le modèle peut être entraîné plus rapidement si plusieurs exemples sont entraînés en parallèle). Évidemment, c'est un bon endroit pour utiliser reshape(). Par exemple, un modèle comme BERT s'attendrait à ce que sa matrice d'entrée ait la forme : [batch_size, séquence_length, embedding_size].


Il s'agit d'une collection de nombres que les modèles peuvent traiter et effectuer diverses opérations utiles. J'ai laissé de nombreuses lignes vides qui peuvent être remplies avec des exemples supplémentaires pour la formation (ou la prédiction) du modèle.

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer