Vitesse: ajouter un élément à la fin du tableau Python

1.Tout d'abord

Il existe plusieurs façons d'ajouter un élément à la fin d'un tableau Python, selon que vous utilisez le type liste ou le type numpy ndarray. Je me demandais à quel point la vitesse d'exécution serait différente par ces méthodes, alors quand Karukuda l'a recherchée, Comparaison de l'append contre le type de liste Seule l'entrée / 20/10/2014/110304) a été trouvée (je suis désolé si la recherche était insuffisante). Par conséquent, nous étudierons la vitesse d'exécution de la méthode d'ajout d'éléments aux trois séquences présentées dans la section suivante par une simple expérience. Le nombre de fois que des éléments ont été ajoutés était de 100 000 et le module de temps a été utilisé pour la mesure du temps. Le code utilisé dans l'expérience est placé à la toute fin.

2. Comment ajouter des éléments au tableau

2.1 Méthode pour le type de liste

Comment utiliser list.append. Il s'agit d'une méthode intégrée à Python en standard et qui devrait être une méthode que même les débutants de Python utilisent souvent.

x = []
for i in range( 10 ):
    x.append( i )

2.2 Méthode pour ndarray 1

Comment utiliser numpy.append.

import numpy as np
x = np.array( [] )
for i in range( 10 ):
    x = np.append( x, i )

2.3 Méthode pour ndarray 2

Comment utiliser numpy.hstack.

import numpy as np
x = np.array( [] )
for i in range( 10 ):
    x = np.hstack( (x,i) )

3 Résultat

Temps d'exécution (secondes)
list.append 0.0149400234222
numpy.append 4.47969698906
numpy.hstack 4.75327301025

Je m'y attendais un peu, mais list.append est extrêmement rapide. Et il n'y a pas de différence de vitesse entre numpy.append et numpy.hstack. Après tout, si vous connaissez à l'avance la taille du tableau requis, il semble que la bonne réponse soit d'utiliser ndarray, sinon utilisez list.

4 Code utilisé pour l'expérience

import numpy as np

def stdAppend(n):
    x = []
    for i in range(n):
        x.append(i)
    return

def npAppend(n):
    x = np.array( [] )
    for i in range(n):
        x = np.append(x,i)
    return

def npHstack(n):
    x = np.array( [] )
    for i in range(n):
        x = np.hstack( (x,i) )
    return

if __name__ == '__main__':
    import time

    n = 100000
    
    start = time.time()
    stdAppend(n)
    ttime = time.time() - start
    print( "stdAppend: %s" % ttime )

    start = time.time()
    npAppend(n)
    ttime = time.time() - start
    print( "npAppend : %s" % ttime )

    start = time.time()
    npHstack(n)
    ttime = time.time() - start
    print( "npHstack : %s" % ttime )

Recommended Posts

Vitesse: ajouter un élément à la fin du tableau Python
[python] Comment trier par le Nth Mth élément d'un tableau multidimensionnel
[Python] Manipulation des éléments dans la liste (tableau) [Ajouter / Supprimer]
Numba pour accélérer en Python
Accès en indice au tableau numpy python
Python 2.7 Ajout de la documentation japonaise à Dash.app
[Python] Comment permuter les valeurs de tableau
Comment accélérer les calculs Python
Comparaison de la vitesse de la perspective XML Python
Ajouter le niveau de journal TRACE à Python ...?
Comment déterminer l'existence d'un élément sélénium en Python
[Python] Comment obtenir la fraction d'un nombre naturel à grande vitesse
Différentes façons de créer un tableau de nombres de 1 à 10 en Python.
[Python] Résumé de l'utilisation des pandas
[Python2.7] Résumé de l'utilisation d'unittest
[Python] Ajouter le nombre total de lignes à Pandas DataFrame
Ajouter du bruit gaussien aux images avec python2.7
Cours de base Python (à la fin de 15)
Comment ajouter un module python à l'environnement anaconda
Résumé de l'utilisation de la liste Python
[Python2.7] Résumé de l'utilisation du sous-processus
Ajouter un environnement virtuel Python à VSCode
[Python] Ajouter un commentaire au fichier d'entrée standard
[Introduction au Data Scientist] Bases de Python ♬
[Question] Comment utiliser plot_surface de python
J'ai créé une fonction pour voir le mouvement d'un tableau à deux dimensions (Python)
python: Astuces pour afficher un tableau (liste) avec un index (comment savoir quel numéro est un élément d'un tableau)
Organiser les outils Python pour accélérer le mouvement initial des compétitions d'analyse de données
Obtenez le dernier élément du tableau en fractionnant les chaînes en Python et PHP
Vous voulez ajouter des indices de type aux décorateurs Python?
[Introduction à Udemy Python3 + Application] 26. Copie du dictionnaire
Résumé de la correspondance entre les opérations de tableau ruby et python
[Python] Comment utiliser deux types de type ()
Convertir le «nombre» de date Excel en date / heure Python
Ajouter des lignes à un tableau vide avec numpy
[Introduction à Udemy Python3 + Application] 19. Copie de la liste
[Python3] Comparaison de vitesse, etc. sur la privation de numpy.ndarray
Résumé de l'utilisation de MNIST avec Python
Comment ajouter un chemin de recherche de module Python
Comparez la vitesse d'ajout et de carte Python
Envoyer Gmail à la fin du processus [Python]
Comment spécifier des attributs avec Mock of Python
Pour ajouter un module à python que vous mettez dans Julialang
Comment obtenir des éléments de type dictionnaire de Python 2.7
[Python numpy] Spécifiez dynamiquement l'index du tableau
Sortie sous la forme d'un tableau python
Vitesse de calcul de l'indexation pour un tableau quadratique numpy
Conversion par lots de fichiers Excel en JSON [Python]
Résumé de l'étude de Python pour utiliser AWS Lambda
Liste de code Python à déplacer et à mémoriser
Supprimer une chaîne spécifique à la fin de python
[Python] Faites de votre mieux pour accélérer SQL Alchemy
Évaluation de la vitesse de sortie du fichier CSV en Python
[Introduction à Python] Utilisation de base des expressions lambda
Mis à jour vers Python 2.7.9
Comment identifier l'élément avec le plus petit nombre de caractères dans une liste Python?
Les bases de Python ①
Bases de python ①