[PYTHON] Différence entre numpy.ndarray et list (dimension, taille)

Puisque le ndarray de numpy et la liste construite en Python étaient foirés, j'ai essayé de résumer chaque dimension et taille à ma manière. Ceci est un résumé des débutants.

Résumé

À la suite de Google, la principale méthode d'acquisition de taille était d'utiliser la fonction len (), la fonction np.shape () et la variable d'instance ndarray.shape.

En conclusion, je pense que ce serait bon marché si vous utilisez ** np.shape (). De plus, j'ai pensé qu'il serait bon de se rappeler que le type de liste intégré ** réalise une représentation de tableau à deux dimensions en utilisant la notation d'inclusion de liste **.

Fonction d'acquisition de taille

Comment obtenir la taille type ndarray Type de liste intégré
len() 1 dimension seulement 1 dimension seulement
np.shape() n dimensions n dimensions
ndarray.shape n dimensions - ※

De plus, bien sûr, la représentation de sortie n'a pas changé en fonction du type et de la dimension.

Notation de taille

dimension type ndarray Type de liste intégré
1 dimension (3, ) (3, )
2D (3, 4) (3, 4) ※

type numpy.ndarray

La fonction numpy.array () semble être un outil pratique pour créer facilement ndarray.

code

Puisqu'il s'agit d'un type numpy.ndarray, ** il n'y a pas de , entre les nombres **.

import numpy as np 
A_np = np.array([5, 2], dtype=int)
B_np = np.array([10, 9], dtype=int)
C_np = np.array([1, 11], dtype=int)
D_np = np.array([9, 1], dtype=int)
#Résultat de la substitution
A_np : [5 2]
B_np : [10  9]
C_np : [ 1 11]
D_np : [9 1]

Ensuite, regardons la taille. Confirmez avec la variable d'instance ndarray.shape. Un tableau de type ndarray unidimensionnel est représenté par `(nombre d'éléments,)`.
#Taille du tableau
A_np.shape : (2,)
B_np.shape : (2,)
C_np.shape : (2,)
D_np.shape : (2,)

Type de liste intégré

Python intégré

Tableau de code à 1 dimension

Puisqu'il s'agit d'un format de liste intégré, **, ʻest inséré entre les nombres **.

A = [5, 2]
B = [10, 9]
C = [1, 11]
D = [9, 1]
#Résultat de la substitution
A : [5, 2]
B : [10, 9]
C : [1, 11]
D : [9, 1]

#### résultat De même, regardons la taille ensuite. Même dans la liste intégrée, la taille du tableau est renvoyée par numpy.shape (). Il y a deux éléments dans un tableau unidimensionnel.
#Taille np.shape()Version de fonction
np.shape(A) : (2,)
np.shape(B) : (2,)
np.shape(C) : (2,)
np.shape(D) : (2,)

Dans le cas d'une dimension, la taille (= nombre d'éléments) peut également être confirmée avec la variable intégrée len (). Dans le cas de 2D, la taille n'est pas renvoyée. C'est juste le nombre d'éléments dans la liste.
#Taille len()Version de fonction
len(A) : 2
len(B) : 2
len(C) : 2
len(D) : 2

Tableau de code 2D

La 2ème dimension de la liste intégrée utilise la "notation d'inclusion de liste".

A = [[12, -8, 4], [0, 6, -10]
#Résultat de la substitution
[[12, -8, 4], [0, 6, -10]

La sortie de la variable intégrée len () a 2 éléments dans la liste.

#Taille
len(A) : 2

Il existe deux façons de trouver la taille d'un tableau bidimensionnel de type liste intégrée. La première consiste à utiliser la fonction np.shape. La deuxième méthode consiste à convertir en type numpy.ndarray, puis à utiliser ndarray.shape.

Tout d'abord, le type de liste intégré reste

A = [[12, -8, 4], [0, 6, -10]]
A : 
[[12, -8, 4], [0, 6, -10]]

np.shape(A) : (2, 3)

Deuxièmement, convertir en type ndarray Puisque le type de liste intégré est changé en type dumpy.ndarray, le , entre les nombres disparaît.

A = [[12, -8, 4], [0, 6, -10]
A_np = np.array(A)
A_np : 
[[ 12  -8   4]
 [  0   6 -10]]

A_np.shape : (2, 3)

Mise en garde

Lorsque vous souhaitez utiliser un tableau à deux dimensions avec le type de liste intégré, cela semble gênant lorsque le nombre d'éléments de chaque élément est différent. Plus précisément,

A = [[12, -8, 4], [0, 6, -10, 2]]

Pour le moment, il s'agit d'un tableau bidimensionnel de type liste intégré avec deux éléments de type liste à l'intérieur. Les longueurs de ces éléments sont différentes.
Le résultat à ce moment est

len(A) : 2
np.shape(A) : (2,)

Même si converti en numpy.ndarray

A_np = np.array(A)
A_np : 
[[12, -8, 4] [0, 6, -10, 2]]

np.shape(A_np) : (2,)

Les , entre les nombres ne sont pas partis, et les éléments sont un tableau de type ndarray de type liste (?). Je suis désolé si j'ai dit quelque chose d'étrange. Je ne suis pas confiant. À propos, np.array ([[12, -8, 4] [0, 6, -10, 2]], dtype = int) a entraîné une erreur.
En d'autres termes, les notations d'inclusion de liste avec différents nombres d'éléments renvoient la longueur de la liste car la taille ne peut pas être mesurée comme une matrice. Eh bien, est-ce naturel?

Recommended Posts

Différence entre numpy.ndarray et list (dimension, taille)
Différence entre list () et [] en Python
Différence entre append et + = dans la liste Python
[Python Iroha] Différence entre List et Tuple
Différence entre processus et travail
Différence entre "categorical_crossentropy" et "sparse_categorical_crossentropy"
Différence entre régression et classification
Différence entre np.array et np.arange
Différence entre MicroPython et CPython
Différence entre ps a et ps -a
Différence entre return et print-Python
Méthode de concaténation de liste en python, différence entre list.extend () et opérateur «+»
Différence entre Ruby et Python Split
Différence entre java et python (mémo)
Différence entre SQLAlchemy filter () et filter_by ()
Mémorandum (différence entre csv.reader et csv.dictreader)
(Remarque) Différence entre la passerelle et la passerelle par défaut
Différence entre le randint de Numpy et le randint de Random
Différence entre tri et tri (mémorial)
Différence entre la série python2 et la série python3 dict.keys ()
Python - Différence entre exec et eval
[Python] Différence entre randrange () et randint ()
[Python] Différence entre trié et trié (Colaboratoire)
[Xg boost] Différence entre softmax et softprob
différence entre les instructions (instructions) et les expressions (expressions) en Python
[Django ORM] Différence entre values () et only ()
Méthode d'essai pour la différence de taille entre les groupes
Différence entre @classmethod et @staticmethod en Python
Différence entre non local et global en Python
Différence entre la régression linéaire, la régression Ridge et la régression Lasso
Différence entre le fichier env_file docker-compose et le fichier .env
[python] Différence entre la sortie rand et randn
Différence de vitesse entre wsgi, bouteille et flacon
Différence entre ls -l et la commande cat
Vérification de la différence et de la compatibilité entre keras et tf.keras # 1
[Introduction à Python] Quelle est la différence entre une liste et un taple?
Quelle est la différence entre «pip» et «conda»?
Différence entre l'utilisation et l'importation sur le langage de bouclier
[python] Différence entre variable et self. Variable dans la classe
À propos de la différence entre "==" et "is" en python
liste et somme
list et numpy
Différences et points communs entre le type de dict, le type de liste et le type de tuple
À propos de la différence entre PostgreSQL su et sudo
Quelle est la différence entre Unix et Linux?
Prise en compte de la différence entre la courbe ROC et la courbe PR
Différence approximative entre Unicode et UTF-8 (et ses compagnons)
BERT peut-il comprendre la différence entre «Ame (bonbons)» et «Ame (pluie)»?
Différence entre Ruby et Python en termes de variables
Quelle est la différence entre usleep, nanosleep et clock_nanosleep?
Différence entre la notation Numpy (n,) et (n, 1) [Différence entre le vecteur horizontal et le vecteur vertical]
Différence entre return, return None et no return description en Python
Comment utiliser argparse et la différence entre optparse
Entre paramétrique et non paramétrique
Quelle est la différence entre les liens symboliques et les liens durs?
Module Python num2words Différence de comportement entre l'anglais et le russe
Python> Différence entre la sortie inpbt et print (inpbt)> [1. 2. 3.] / array ([1., 2., 3.], dtype = float32)
Comprendre la différence entre l'affectation cumulative aux variables et l'affectation cumulative aux objets
Différence entre les back_populates et backref de SQL Alchemy et lorsque ni l'un ni l'autre n'est utilisé
Différence entre le processus de premier plan et le processus d'arrière-plan compris par principe