[PYTHON] Fonctionnement du tableau NumPy (1)

Pourquoi utiliser Python

Réfléchissons au point de départ. Quelle est la raison d'utiliser Python pour les statistiques et l'apprentissage automatique? L'auteur pense comme suit.

Il existe de nombreux autres types, tels que Haskell et Ruby, qui sont purement attrayants pour le langage. En outre, le langage R est bien connu pour les calculs mathématiques statistiques simples. Il existe également des logiciels payants pour les calculs financiers et l'analyse statistique. Cependant, Python peut être le premier candidat en tant que langage qui résout des problèmes en même temps qu'une application scientifique spécialisée dans le calcul et le traitement général du système.

NumPy est la bibliothèque qui est à la base de calculs scientifiques et mathématiques divers tels que le calcul de tableaux multidimensionnels par Python.

À partir de maintenant, nous allons nous concentrer sur la manipulation des tableaux de NumPy pendant un certain temps pour mieux comprendre ses puissantes fonctionnalités.

Objet np.ndarray

L'objet NumPy ndarray est une classe permettant de traiter les données de foulée (données continues) comme un tableau à N dimensions.

Tenter de travailler avec des tableaux multidimensionnels dans un langage de programmation commun sans l'aide d'une telle bibliothèque nécessiterait une liste imbriquée complexe (tableau) et une autre boucle multiple imbriquée complexe pour le calculer. Je vais finir. Ce n'est pas réaliste, donc le bien ou le mal d'une bibliothèque de tableaux multidimensionnels peut être considéré comme essentiel dans les calculs scientifiques.

Avantages et inconvénients de ndarray

Voici quelques-uns des avantages de ndarray par rapport à ndarray et à plusieurs listes (tableaux).

D'un autre côté, ndarray présente certains inconvénients.

Du point de vue de l'algèbre mathématique, en particulier linéaire, je pense que c'est plutôt naturel.

Composants de ndarray

Le ndarray a une foulée en interne et l'objet tableau a des éléments tels que dtype (type de données), la forme et la foulée.

La forme du tableau est accessible avec la fonction shape. Les foulées sont également accessibles avec la fonction foulées.

np.zeros((3,4))
#=> array([[ 0.,  0.,  0.,  0.],
#          [ 0.,  0.,  0.,  0.],
#          [ 0.,  0.,  0.,  0.]])

np.zeros((3,4)).shape
#=> (3, 4)

np.zeros((3,4)).strides
#=> (32, 8)
#Valeur d'octet indiquant la "longueur de pas" requise pour faire avancer un élément d'un élément dans chaque dimension

Référence d'index

Tranchage

Pour les tableaux avec deux dimensions ou plus, la destination de référence d'index est un tableau avec une ou plusieurs dimensions.

arr = np.array( [[[1,2,3], [4,5,6]], [[7,8,9],[10,11,12]]] )

arr.ndim #Nombre de dimensions
#=> 3

arr[0]
#=> array([[1, 2, 3],
#          [4, 5, 6]])
#Renvoie un tableau à deux dimensions

Si vous spécifiez un tableau pour l'index, vous pouvez récupérer le tableau avec le nombre de dimensions réduit de ce montant.

arr[1,0]
#=> array([7, 8, 9])

arr[1,0,2]
#=> 9

Voir l'index de fantaisie

Lorsque vous souhaitez extraire d'un tableau multidimensionnel dans un certain ordre, vous pouvez transmettre une liste d'entiers ou ndarray indiquant l'ordre comme référence d'index.

arr[[1,0]]
#=> array([[[ 7,  8,  9],
#           [10, 11, 12]],
#          [[ 1,  2,  3],
#           [ 4,  5,  6]]])

arr = np.arange(48).reshape((4,3,4))
#=> array([[[ 0,  1,  2,  3],
#           [ 4,  5,  6,  7],
#           [ 8,  9, 10, 11]],

#          [[12, 13, 14, 15],
#           [16, 17, 18, 19],
#           [20, 21, 22, 23]],

#          [[24, 25, 26, 27],
#           [28, 29, 30, 31],
#           [32, 33, 34, 35]],

#          [[36, 37, 38, 39],
#           [40, 41, 42, 43],
#           [44, 45, 46, 47]]])

arr[[0,0,1],[0,1,0],[0,0,2]]
#=> array([ 0,  4, 14])
# (0,0,0), (0,1,0), (1,0,2)L'élément à la position de est retiré

Résumé

Tout d'abord, j'ai présenté la référence d'index de base. Ces références ne copient pas l'objet en mémoire et sont toutes fournies dans une vue stride sur les données. C'est l'une des fonctionnalités de ndarray.

Recommended Posts

Fonctionnement du tableau NumPy (3)
Fonctionnement du tableau NumPy (1)
calcul de tableau numpy python
Créer un tableau numpy python
Calcul de tableau multidimensionnel sans Numpy
À propos du tableau Numpy et d'un tableau
Accès en indice au tableau numpy python
Calcul de tableau multidimensionnel sans Numpy Partie 2
Application Python: Numpy Partie 3: Double tableau
Extraire plusieurs éléments avec le tableau Numpy
Inverser le tableau booléen numpy dans tilda
pratique numpy 1
numpy partie 1
Principes de base de NumPy
Mémorandum Numpy _ Matrice
Python / numpy> fichier de liste (tableau numpy) sauvegarde / chargement
Axe NumPy
Utilisez Numpy
numpy partie 2
Différence entre le tableau Numpy 1D [x] et le tableau 2D [x, 1]
Ajouter des lignes à un tableau vide avec numpy
La forme du tableau unidimensionnel de numpy était compliquée
[Python numpy] Spécifiez dynamiquement l'index du tableau
Vitesse de calcul de l'indexation pour un tableau quadratique numpy