Application Python: Numpy Partie 3: Double tableau

Double réseau

Un double tableau peut être traité comme une «matrice» en mathématiques. Par exemple, si vous écrivez np.array ([liste, liste, liste ...]) Des données de tableau double (type ndarray) sont créées.

Suite aux mathématiques, la hiérarchie de plusieurs tableaux est parfois appelée une «dimension». Un tableau double est un tableau à deux dimensions, et ainsi de suite.

Vérifiez le nombre de files d'attente

Le tableau de nparray est

shape

Il a une variable membre appelée.

tableau nparray.shape #Lorsque vous écrivez ceci, le nombre d'éléments dans le tableau est enregistré.

Par exemple, si vous avez un double tableau qui correspond à une matrice 2 par 3 Le tableau ndarray .shape a la valeur (2, 3).

import numpy as np

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

#production

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

#Le nombre de lignes et de colonnes est comme indiqué ci-dessous, où la ligne est le nombre de listes et la colonne est le nombre d'éléments.
(2, 3)

Réglage de la matrice

La forme du tableau est

tableau ndarray.reshape()

Vous pouvez le changer avec la méthode.

Utilisation de deux arguments a et b

tableau ndarray.reshape(a,b)

Si vous écrivez, vous obtiendrez les données du tableau correspondant à la matrice d'une ligne et b colonne comme valeur de retour.

À ce stade, le nombre total d'éléments et l'argument de la méthode reshape doivent correspondre. Si vous utilisez -1 pour l'argument, il sera transformé en devinant la valeur appropriée à partir des autres arguments.

import numpy as np

arrA = np.array([1,2,3,4,5,6]) 
print(arrA)
arrB = arrA.reshape(2,3)
print(arrB)
arrC = arrA.reshape(-1,2)
print(arrC)


#production

# arrA
[1 2 3 4 5 6]

# arrB:Ajuster le nombre de matrices à partir de l'argument
[[1 2 3]
 [4 5 6]]

# arrC: -Ajuster à partir de l'argument de 1 à partir de l'argument de la colonne 2
[[1 2]
 [3 4]
 [5 6]]

Référence d'index et tranche

Pour un tableau à deux dimensions, si vous spécifiez un seul index, vous pouvez obtenir n'importe quelle ligne du tableau.

arr = np.array([[1, 2 ,3], [4, 5, 6]])
print(arr[1])
#Résultat de sortie
[4 5 6]

Vous devez spécifier deux index pour accéder à l'élément individuel ou à la valeur scalaire. Autrement dit, accédez comme arr [1] [2] ou arr [1, 2].

arr [1] [2] accède au troisième élément du tableau récupéré par arr [1] Dans arr [1, 2], on accède au même élément en spécifiant les axes du tableau bidimensionnel.

arr = np.array([[1, 2 ,3], [4, 5, 6]])
print(arr[1][2])
print(arr[1,2])
#Résultat de sortie
6
6

Il est également possible d'utiliser des tranches lors du référencement d'un tableau à deux dimensions.

arr = np.array([[1, 2 ,3], [4, 5, 6]])
print(arr[1,1:])
#Résultat de sortie
[5 6]

# :Extrait les éléments après et avant l'élément avec.

axis

A partir d'un tableau bidimensionnel, le concept d'axe devient important.

axis est comme un axe de coordonnées. Il existe de nombreuses situations dans lesquelles vous pouvez définir un axe comme argument d'une fonction NumPy.

Dans le cas d'un tableau à deux dimensions, l'axe est défini comme indiqué dans la figure ci-dessous. L'axe qui traite chaque colonne est axis = 0 L'axe qui traite ligne par ligne est axis = 1 Cela signifie que.

image.png

Par exemple, considérons la méthode sum () d'un tableau ndarray. Vous pouvez ajouter des éléments avec ndarray.sum ().

mport numpy as np

arr = np.array([[1, 2 ,3], [4, 5, 6]])

print(arr.sum()) # sum()Si rien n'est spécifié dans l'argument de, la valeur totale sera un scalaire (entier, fraction, etc.)
print(arr.sum(axis=0)) # axis=Si 0 est spécifié, une addition verticale est effectuée et les éléments deviennent un tableau unidimensionnel avec trois éléments.
print(arr.sum(axis=1)) # axis=Si vous spécifiez 1, vous pouvez voir que les éléments sont ajoutés horizontalement pour former deux tableaux unidimensionnels.
#Résultat de sortie
21
[5 7 9]
[ 6 15]

# axis=Élément à 0(Par numéro d'index)
# axis=1 pour chaque liste primaire

Voir l'index de fantaisie

Il s'agit d'une méthode d'utilisation d'un tableau d'index pour la référence d'index.

Pour extraire des lignes d'un tableau ndarray dans un ordre particulier Passez un tableau affichant l'ordre comme référence d'index.

[[]] #Utilisez des parenthèses doubles pour les références d'index sophistiquées.
arr = np.array([[1, 2], [3, 4], [5, 6], [7, 8]]) 

#Extrayez les éléments des 3ème, 2ème et 0ème lignes dans cet ordre et créez un nouvel élément.
#Les numéros d'index commencent à 0.
print(arr[[3, 2, 0]]) 
#Résultat de sortie
[[7 8]
 [5 6]
 [1 2]]

Matrice de translocation

Dans une matrice, l'échange de lignes et de colonnes est appelé transposition. Pour transposer un tableau ndarray

np.transpose()

Comment l'utiliser

.T

Il y a deux manières d'utiliser

image.png

import numpy as np

arr = np.arange(10).reshape(2, 5)

#Transposer et sortir la variable arr
print(arr.T)
#Ou
print(arr.transpose())

#production
[[0 5]
 [1 6]
 [2 7]
 [3 8]
 [4 9]]

Trier

Il existe plusieurs façons de trier, qui ont toutes des utilisations différentes.

sort() Le tableau ndarray peut être trié par sort () ainsi que par type de liste.

Pour un tableau à deux dimensions, prendre 0 comme argument trie les éléments par colonne.

import numpy as np
arr = np.array([[15, 5, 200], [2, 100, 60], [100, 50, 8]])
print(arr)
arr.sort(axis=0) #Il est spécifié dans la colonne ici.
print(arr)

#Résultat de sortie

[[ 15   5 200]
 [  2 100  60]
 [100  50   8]]

[[  2   5   8]
 [ 15  50  60]
 [100 100 200]]

Prendre 1 comme argument trie les éléments ligne par ligne.

import numpy as np
arr = np.array([[15, 5, 200], [2, 100, 60], [100, 50, 8]])
print(arr)
arr.sort(1) #Spécifiez 1 sans axe et spécifiez ligne par ligne
print(arr)
#Résultat de sortie
[[ 15   5 200]
 [  2 100  60]
 [100  50   8]]

[[  5  15 200]
 [  2  60 100]
 [  8  50 100]]

np.sort()

Vous pouvez également trier en utilisant np.sort (). Cependant, veuillez noter que l'utilisation est différente.

La méthode d'arr qui a sauvé les données

arr.sort() #Triez les données dans arr.

d'autre part

np.sort(arr) #L'arr reste le même, créant un autre tableau avec les données triées.

Lors de l'utilisation de np.sort (), les données triées ne peuvent être utilisées que si la variable nouvellement créée est affectée.

import numpy as np
arrA = np.array([[15, 5, 200], [2, 100, 60], [100, 50, 8]])
arrB = np.sort(arrA)
print(arrA) #Arrangement avant le tri
print(arrB) #Arrangement après le tri

#méthode de tri (arr.sort()Si vous écrivez du code similaire en utilisant), le comportement changera complètement.

import numpy as np
arrA = np.array([[15, 5, 200], [2, 100, 60], [100, 50, 8]])
arrB = arrA.sort()
print(arrA) #Arrangement après le tri
print(arrB) # None

# np.En ajoutant, un nouveau tableau sera créé.


Lors de l'utilisation de np.sort (), les données triées ne peuvent être utilisées que si la variable nouvellement créée est affectée.

NumPy est conçu pour gérer une grande quantité de données et adopte une conception rare pour un module Python, telle que le renvoi de None à certaines méthodes.

Méthode argsort (): renvoie un "index de tableau".

Méthodes couramment utilisées dans l'apprentissage automatique

argsort() #Il y a aussi ceci.

La méthode argsort () renvoie l '"index du tableau" trié.

import numpy as np
arr = np.array([15, 30, 5])
arr.argsort()
#Une fois exécutés, les résultats suivants seront obtenus.

#Résultat de sortie
[2 0 1]

Si vous faites arr.sort (), ce sera [5 15 30]. L'élément "5" qui était dans le "second" dans le tableau d'origine est le 0e L'élément «15» qui était dans le «0e» dans le tableau d'origine est le 1er L'élément "30" qui était dans le "premier" dans le tableau d'origine devient le deuxième élément.

Donc si vous faites [15, 30, 5] avec .argsort () La valeur est renvoyée sous la forme [2 0 1] car elle devient l'élément "2nd, 0th, 1st" dans l'ordre.

Calcul matriciel

Pour les fonctions qui effectuent des calculs matriciels

np.dot(a,b) #Renvoie le produit matriciel de deux matrices
np.linalg.norm(a) #Renvoie la norme

Le calcul du produit de la matrice crée une nouvelle matrice dont les éléments sont le produit interne du vecteur ligne et du vecteur colonne dans la matrice.

Norme

La norme est celle qui renvoie la longueur du vecteur C'est la somme des valeurs au carré des éléments et recouvertes de la racine.

image.png

Fonction statistique

Une fonction statistique est une fonction qui effectue un traitement mathématique centré sur l'ensemble du tableau ndarray ou sur un axe spécifique. Ou une méthode.

np.argmax() #Numéro d'index de la valeur maximale de l'élément
np.argmin() #Numéro d'index de la valeur minimale de l'élément

De plus, ces fonctions

np.average() #moyenne

Sauf pour cette moyenne

Appliquer au tableau ndarray

ndarray.mean()
ndarray.max()

Il existe également des méthodes pour l'objet lui-même, telles que.

Comme une chose traitée dans les statistiques

np.std() #écart-type
np.var() #Distribué

Etc.

np.sum() 
#Maintenant en spécifiant avec axis
#Comme si on pouvait décider sur quel axe se concentrer
np.mean()
mean()
#Vous pouvez spécifier l'axe de la même manière avec ceux-ci.
np.argmax()
argmax()
np.argmin()
argmin()

#Pour ces méthodes
#Renvoie l'index maximum ou minimum pour chaque axe spécifié par axe.

diffuser

Lors du calcul entre des tableaux ndarray de différentes tailles Un processus appelé diffusion est exécuté automatiquement.

Diffusion lors du calcul entre deux baies ndarray Adapte automatiquement les lignes et les colonnes d'un petit tableau à un grand tableau.

Lorsque le nombre de lignes dans les deux tableaux ne correspond pas Copiez les lignes manquantes des lignes existantes en fonction du nombre de lignes avec le moins de lignes.

Si le nombre de colonnes ne correspond pas, le même processus est effectué. Toutes les baies ne peuvent pas être diffusées, La diffusion est possible lorsque tous les éléments sont traités de la même manière que celle illustrée dans la figure ci-dessous.

image.png

x = np.arange(6).reshape(2, 3)
print(x + 1)
#Résultat de sortie
[[1 2 3]
 [4 5 6]]

Recommended Posts

Application Python: Numpy Partie 3: Double tableau
calcul de tableau numpy python
Application Python: Pandas Partie 1: Basique
Application Python: Pandas Partie 2: Série
numpy partie 1
Accès en indice au tableau numpy python
Application Python: Traitement des données # 3: Format des données
Calcul de tableau multidimensionnel sans Numpy Partie 2
numpy partie 2
Application Python: visualisation de données partie 1: basique
Application de Python: visualisation de données Partie 3: divers graphiques
Python / numpy> fichier de liste (tableau numpy) sauvegarde / chargement
QGIS + Python Partie 2
QGIS + Python Partie 1
Tableau multidimensionnel Python
[Débutant] Tableau Python
Fonctionnement du tableau NumPy (3)
Les bases de #Python (#Numpy 1/2)
Les bases de #Python (#Numpy 2/2)
Python: grattage partie 1
Fonctionnement du tableau NumPy (1)
principes de base des tableaux python
Principes de base de Python #Numpy
Python3 commence la partie 1
[Python] Mémo Numpy
Python: grattage, partie 2
[Python numpy] Spécifiez dynamiquement l'index du tableau
Application de Python: Traitement des données Partie 2: Analyse de divers formats de données
[Python] Créer un tableau structuré (stocker des données hétérogènes avec NumPy)
Convertir le tableau NumPy "ndarray" en lilt en Python [tolist ()]
Test numpy Python Basic 8
[Python] Recherche (NumPy) ABC165C
Mémorandum de base Python partie 2
Application Web réalisée avec Python3.4 + Django (Construction de l'environnement Part.1)
[Python] Tri des données Numpy
"My Graph Generation Application" par Python (PySide + PyQtGraph) Partie 1
Mémo de base Python - Partie 1
Application de Python 3 vars
Application Python: Pandas # 3: Dataframe
Introduction à Python numpy pandas matplotlib (pour ~ B3 ~ part2)
[python] Opération de tranche de tableau
Python Basic --Pandas, Numpy-
Comment convertir un tableau en dictionnaire avec Python [Application]
Traitement d'image avec Python (partie 2)
Etudier Python avec freeCodeCamp part1
Conseils pour réfléchir à np.newaxis en Python / Numpy
Mémo Python (pour moi): Array
Images en bordure avec python Partie 1
Tri rapide d'un tableau en Python 3
Convertir numpy int64 en python int
Grattage avec Selenium + Python Partie 1
Python: prévision de survie de navire, partie 2
Tableau multidimensionnel vide en python
[Python] Méthode de calcul avec numpy
Python: image de tableau 3D (numpy.array)
Implémentation de SMO avec Python + NumPy
Mémo de grammaire de base Python (1)
Python: prévision de survie des navires, partie 1
Produit matriciel en python numpy
Traitement d'image avec Python (partie 1)
Résolution de Nampre avec Python (partie 2)