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.
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)
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]]
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.
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
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]]
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
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]]
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é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.
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.
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.
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.
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.
x = np.arange(6).reshape(2, 3)
print(x + 1)
#Résultat de sortie
[[1 2 3]
[4 5 6]]
Recommended Posts