[PYTHON] Ich habe 6 Methoden gemessen, um den Index des Maximalwerts (Minimalwerts) der Liste zu erhalten

Wie oben erwähnt

Den Index des Maximalwerts (Minimalwerts) der Liste abrufen

Ich habe die 5 Methoden gemessen, die in Herrn Uzens Artikel oben beschrieben wurden. Für den Messcode habe ich [Verarbeitungszeit messen und anzeigen] verwendet (http://qiita.com/fantm21/items/3dc7fbf4e935311488bc).

Nachtrag

Ich habe auch die Verarbeitung mit numpy hinzugefügt, auf die im Kommentar hingewiesen wurde. Mit Ausnahme der Konvertierungskosten für Array → Numpy war Numpy überwältigend schnell. Es war zu früh, also habe ich die Anzahl der Elemente im Zielarray um eine Größenordnung erhöht.

Ergebnis

Ausführungsergebnis, Implementierungscode

Ausgabeergebnis (Teil)


elapsed_time:0.027699708938598633[sec] 
elapsed_time:0.15381669998168945[sec] 
elapsed_time:0.1455528736114502[sec] 
elapsed_time:0.09561371803283691[sec] 
elapsed_time:0.07018375396728516[sec] 
elapsed_time:0.08819770812988281[sec] 
elapsed_time:0.0008273124694824219[sec] 
[244347, 674860, 655894, 255695, 678218, 531167, 17071, 288341, 429050, 146444, 291065, 27607, 556887, 298302, 515557, 271078, 883608, 9098, 752318, 276251, 349950, 133988, 955108, 322233, 613472, 844009, 298534, 485112, 106167, 516815, 865031, 286926, 413458, 883781, 910152, 942716, 913758, 853043, 377110, 527816, 478540, 920741, 770539, 169002, 820915, 231827, 423725, 673925, 182482, 14842, 515316, 999412, 152994, 986206, 851899, 403318, 137434, 163888, 46630, 347440, 920191, 506127, 935566, 981816, 353811, 196066, 106365, 739729, 62010, 426593, 

Implementierungscode


import time
import random
import numpy as np

list_name = []
max_value = 1000000

for i in range(max_value ):
    list_name.append(random.randint(1,max_value))

start = time.time()
list_name.index(max(list_name))
elapsed_time = time.time() - start
print("elapsed_time:{0}".format(elapsed_time) + "[sec]")

start = time.time()
max(enumerate(list_name), key=lambda x: x[1])[0]
elapsed_time = time.time() - start
print("elapsed_time:{0}".format(elapsed_time) + "[sec]")

start = time.time()
max(range(len(list_name)), key=lambda i: list_name[i])
elapsed_time = time.time() - start
print("elapsed_time:{0}".format(elapsed_time) + "[sec]")

import operator

start = time.time()
max(enumerate(list_name), key=operator.itemgetter(1))[0]
elapsed_time = time.time() - start
print("elapsed_time:{0}".format(elapsed_time) + "[sec]")

start = time.time()
max(zip(list_name, range(len(list_name))))[1]
elapsed_time = time.time() - start
print("elapsed_time:{0}".format(elapsed_time) + "[sec]")

# numpy (Array → Numpy-Konvertierungsverarbeitung enthalten)
start = time.time()
np_list_name = np.array(list_name)
np_list_name.argmax()
elapsed_time = time.time() - start
print("elapsed_time:{0}".format(elapsed_time) + "[sec]")

# numpy (Array → Numpy ohne Konvertierungsverarbeitung)
np_list_name2 = np.array(list_name)
start = time.time()
np_list_name2.argmax()
elapsed_time = time.time() - start
print("elapsed_time:{0}".format(elapsed_time) + "[sec]")

print(list_name)

Serpentin

Ich habe versucht, in den Kommentaren im Blog zu erzählen, aber ich konnte den Kommentarbereich nicht finden. Liefern Sie dieses Gefühl.

~~ Und selbst der schnellste Code kann ein bestimmtes Problem nicht lösen ... Wenn Sie einen besseren Weg kennen, lassen Sie es mich bitte wissen. ~~ → Gelöst!

Recommended Posts

Ich habe 6 Methoden gemessen, um den Index des Maximalwerts (Minimalwerts) der Liste zu erhalten
Ich habe versucht, den Index der Liste mithilfe der Aufzählungsfunktion abzurufen
Ruft den Wert eines bestimmten Schlüssels bis zum angegebenen Index der Wörterbuchliste in Python ab
[Python] Verwendung von Liste 2 Referenz des Listenwerts, der Anzahl der Elemente, des Maximalwerts und des Minimalwerts
Versuchen Sie, die Funktionsliste des Python> os-Pakets abzurufen
Ich habe versucht, die Standortinformationen des Odakyu-Busses zu erhalten
Ich möchte Betriebsinformationen über die Yahoo-Route erhalten
So erhalten Sie den letzten (letzten) Wert in einer Liste in Python
Ruft den Index des n-ten größten / kleinsten Werts in der Liste in Python ab
Ich habe versucht, das lokale Minimum der Goldstein-Preis-Funktion zu bekämpfen
Keras Ich möchte die Ausgabe einer beliebigen Ebene erhalten !!
Ruft den Index des n-ten größten / kleinsten Werts in der Liste in Python ab
Ich möchte den Namen der ausgeführten Funktion / Methode erhalten
Extrahieren Sie den Index der ursprünglichen Mengenliste, der der Liste der Teilmengen entspricht.
Ich habe versucht, mit Boto3 eine Liste der AMI-Namen zu erhalten
Wie erhalte ich eine Liste ohne Elemente, deren Index i ... ist?
10 Methoden zur Verbesserung der Genauigkeit von BERT
Holen Sie sich die Spaltenliste und Datenliste von CASTable
Ermitteln Sie den Wert der mittleren Schicht von NN
Ich habe versucht, die Trefferergebnisse von Hachinai mithilfe der Bildverarbeitung zu erhalten
[Linux] Ein Befehl zum Abrufen einer Liste der in der Vergangenheit ausgeführten Befehle
Ich habe versucht, den Authentifizierungscode der Qiita-API mit Python abzurufen.
Ich möchte eine Liste in der Reihenfolge anderer Listen sortieren
Ich habe versucht, das RSS des Top-Songs des iTunes Store automatisch abzurufen
Ich habe versucht, die Filminformationen der TMDb-API mit Python abzurufen
Ich habe versucht, den Höhenwert von DTM in einem Diagramm anzuzeigen
Ich habe die Geschwindigkeit der Listeneinschlussnotation für und während mit Python2.7 gemessen.
[Für Anfänger] Ich möchte den Index eines Elements erhalten, das einen bestimmten bedingten Ausdruck erfüllt
Ich möchte den Pfad des Verzeichnisses abrufen, in dem die laufende Datei gespeichert ist.
Ich habe gawk verwendet, um den Maximalwert für NF herauszufinden.
Die Geschichte der IPv6-Adresse, die ich auf ein Minimum beschränken möchte
Ich habe die Liste der Tastenkombinationen von Jupyter überprüft
Ich habe versucht, die Trapezform des Bildes zu korrigieren
Ich möchte die Daten von League of Legends ③ erhalten
Ich möchte die Daten von League of Legends ② erhalten
Ich möchte eine Liste der WebDAV-Dateien im Modul Anfragen anzeigen
Python-Skript zum Abrufen einer Liste von Eingabebeispielen für den AtCoder-Wettbewerb
Suchen Sie nach dem Wert der Instanz in der Liste
Ich möchte das Erscheinungsbild von zabbix anpassen
Ich möchte League of Legends-Daten erhalten ①
So erhalten Sie mit Python eine Liste der Dateien im selben Verzeichnis
[Einführung in Python] So erhalten Sie den Datenindex mit der for-Anweisung
Ich habe versucht, die Texte von Hinatazaka 46 zu vektorisieren!
Ich möchte mit dem Linux-Kernel beginnen. Wie ist die Listenkopfstruktur?
Konvertieren Sie das Slice-Objekt in eine Liste mit Indexnummern
Ich möchte das Ausführungsergebnis von strace erfassen
Ich habe versucht, die Grundform von GPLVM zusammenzufassen
[Python] Ruft die Liste der im Modul definierten Klassen ab
[C-Sprache] [Linux] Ruft den Wert der Umgebungsvariablen ab
Ich möchte die Grundlagen von Bokeh vollständig verstehen
Versuchen Sie, den Inhalt von Word mit Golang zu erhalten
Ich habe die Leistung von 1 Million Dokumenten mit mongoDB gemessen
[Python] Ruft die Liste der ExifTags-Namen der Pillow-Bibliothek ab
Ich habe versucht, die Spacha-Informationen von VTuber zu visualisieren
Python: Ruft eine Liste der Methoden für ein Objekt ab