Geschwindigkeit: Element am Ende des Python-Arrays hinzufügen

1. Zuallererst

Es gibt verschiedene Möglichkeiten, ein Element am Ende eines Python-Arrays hinzuzufügen, je nachdem, ob Sie den Listentyp oder den numpy ndarray-Typ verwenden. Ich habe mich gefragt, um wie viel sich die Ausführungsgeschwindigkeit bei diesen Methoden unterscheiden würde. Als Karukuda sie nachschlug, Vergleich des Anhängens mit dem Listentyp Es wurde nur der Eintrag (20.10.2014/110304) gefunden (es tut mir leid, wenn nicht genügend Nachforschungen angestellt wurden). Daher werden wir die Ausführungsgeschwindigkeit der Methode zum Hinzufügen von Elementen zu den drei im nächsten Abschnitt gezeigten Sequenzen durch ein einfaches Experiment untersuchen. Die Anzahl der hinzugefügten Elemente betrug 100.000, und das Zeitmodul wurde zur Zeitmessung verwendet. Der im Experiment verwendete Code steht ganz am Ende.

2. Hinzufügen von Elementen zum Array

2.1 Methode für den Listentyp

Verwendung von list.append. Dies ist eine Methode, die standardmäßig in Python integriert ist und die selbst Anfänger von Python häufig verwenden sollten.

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

2.2 Methode für ndarray 1

Verwendung von numpy.append.

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

2.3 Methode für ndarray 2

Verwendung von numpy.hstack.

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

3 Ergebnis

Ausführungszeit (Sekunden)
list.append 0.0149400234222
numpy.append 4.47969698906
numpy.hstack 4.75327301025

Ich habe es ein wenig erwartet, aber list.append ist überwältigend schnell. Und es gibt keinen Geschwindigkeitsunterschied zwischen numpy.append und numpy.hstack. Wenn Sie die Größe des erforderlichen Arrays im Voraus kennen, scheint es die richtige Antwort zu sein, ndarray zu verwenden, andernfalls list zu verwenden.

4 Code für das Experiment

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

Geschwindigkeit: Element am Ende des Python-Arrays hinzufügen
[Python] So sortieren Sie nach dem N-ten M-ten Element eines mehrdimensionalen Arrays
[Python] Manipulation von Elementen in der Liste (Array) [Hinzufügen / Löschen]
Numba als Python zu beschleunigen
Indexierter Zugriff auf das Python-Numpy-Array
Python 2.7 Fügen Sie Dash.app japanische Dokumentation hinzu
[Python] So tauschen Sie Array-Werte aus
So beschleunigen Sie Python-Berechnungen
Geschwindigkeitsvergleich der Python-XML-Perspektive
TRACE-Protokollebene zu Python hinzufügen ...?
So bestimmen Sie die Existenz eines Selenelements in Python
[Python] Wie man den Bruchteil einer natürlichen Zahl mit hoher Geschwindigkeit erhält
Verschiedene Möglichkeiten, um in Python ein Array von Zahlen von 1 bis 10 zu erstellen.
[Python] Zusammenfassung der Verwendung von Pandas
[Python2.7] Zusammenfassung der Verwendung von unittest
[Python] Fügen Sie Pandas DataFrame insgesamt Zeilen hinzu
Fügen Sie Bildern mit Python2.7 Gaußsches Rauschen hinzu
Python-Grundkurs (Ende 15)
So fügen Sie der Anaconda-Umgebung ein Python-Modul hinzu
Zusammenfassung der Verwendung der Python-Liste
[Python2.7] Zusammenfassung der Verwendung des Unterprozesses
Fügen Sie VSCode eine virtuelle Python-Umgebung hinzu
[Python] Fügen Sie der Standardeingabedatei einen Kommentar hinzu
[Einführung in Data Scientist] Grundlagen von Python ♬
[Frage] Wie verwende ich plot_surface von Python?
Ich habe eine Funktion erstellt, um die Bewegung eines zweidimensionalen Arrays (Python) zu sehen.
Python: Tipps zum Anzeigen eines Arrays (einer Liste) mit einem Index (wie man herausfindet, welche Nummer ein Element eines Arrays ist)
Organisieren Sie Python-Tools, um die anfängliche Bewegung von Datenanalyse-Wettbewerben zu beschleunigen
Holen Sie sich das letzte Element des Arrays, indem Sie Zeichenfolgen in Python und PHP aufteilen
Möchten Sie Python-Dekoratoren Typhinweise hinzufügen?
[Einführung in die Udemy Python3 + -Anwendung] 26. Kopie des Wörterbuchs
Zusammenfassung der Korrespondenz zwischen Ruby- und Python-Array-Operationen
[Python] Verwendung von zwei Arten von type ()
Konvertieren Sie die "Anzahl" des Excel-Datums in die Python-Datumszeit
Fügen Sie einem leeren Array mit numpy Zeilen hinzu
[Einführung in die Udemy Python3 + -Anwendung] 19. Kopie der Liste
[Python3] Geschwindigkeitsvergleich usw. über den Entzug von numpy.ndarray
Zusammenfassung der Verwendung von MNIST mit Python
So fügen Sie einen Suchpfad für Python-Module hinzu
Vergleichen Sie die Geschwindigkeit von Python Append und Map
Senden Sie Google Mail am Ende des Vorgangs [Python]
So legen Sie Attribute mit Mock of Python fest
So fügen Sie Python ein Modul hinzu, das Sie in Julialang eingefügt haben
So erhalten Sie Elemente vom Typ Wörterbuch von Python 2.7
[Python numpy] Geben Sie den Index des Arrays dynamisch an
Ausgabe in Form eines Python-Arrays
Berechnungsgeschwindigkeit der Indizierung für ein numpy quadratisches Array
Stapelkonvertierung von Excel-Dateien in JSON [Python]
Zusammenfassung des Studiums von Python zur Verwendung von AWS Lambda
Liste des zu verschiebenden und zu merkenden Python-Codes
Entfernen Sie eine bestimmte Zeichenfolge am Ende von Python
[Python] Geben Sie Ihr Bestes, um SQL Alchemy zu beschleunigen
Geschwindigkeitsbewertung der Ausgabe von CSV-Dateien in Python
[Einführung in Python] Grundlegende Verwendung von Lambda-Ausdrücken
Auf Python 2.7.9 aktualisiert
Wie identifiziere ich das Element mit der geringsten Anzahl von Zeichen in einer Python-Liste?
Python-Grundlagen ①
Grundlagen von Python ①