[PYTHON] J'ai mesuré 6 méthodes pour obtenir l'indice de la valeur maximale (valeur minimale) de la liste

Comme mentionné ci-dessus

Obtenir l'index de la valeur maximale (valeur minimale) de la liste

J'ai mesuré les 5 méthodes décrites dans l'article de M. Uzen ci-dessus. Pour le code de mesure, j'ai utilisé Mesurer et afficher le temps de traitement.

Postscript

J'ai également ajouté le traitement avec numpy qui a été souligné dans le commentaire. À l'exception du coût de conversion de array → numpy, numpy était extrêmement rapide. Il était trop tôt, j'ai donc augmenté le nombre d'éléments dans le tableau cible d'un ordre de grandeur.

résultat

Résultat d'exécution, code d'implémentation

Résultat de sortie (partie)


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, 

Code d'implémentation


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 → traitement de conversion numpy inclus)
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 sans traitement de conversion)
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

J'ai essayé de le dire dans les commentaires sur le blog, mais je n'ai pas trouvé la section des commentaires. Offrez ce sentiment.

~~ Et même le code le plus rapide ne peut pas résoudre un certain problème ... Si vous connaissez un meilleur moyen, faites-le moi savoir. ~~ → Résolu!

Recommended Posts

J'ai mesuré 6 méthodes pour obtenir l'indice de la valeur maximale (valeur minimale) de la liste
J'ai essayé d'obtenir l'index de la liste en utilisant la fonction énumérer
Obtenir la valeur d'une clé spécifique jusqu'à l'index spécifié de la liste de dictionnaires en Python
[Python] Comment utiliser la liste 2 Référence de la valeur de la liste, nombre d'éléments, valeur maximale, valeur minimale
Essayez d'obtenir la liste des fonctions du paquet Python> os
J'ai essayé d'obtenir les informations de localisation du bus Odakyu
Je veux obtenir des informations sur le fonctionnement de Yahoo Route
Comment obtenir la dernière (dernière) valeur d'une liste en Python
Obtenir l'index de la nième valeur la plus grande / la plus petite de la liste en Python
J'ai essayé de combattre le minimum local de la fonction Goldstein-Price
Keras Je veux obtenir la sortie de n'importe quelle couche !!
Obtenir l'index de la nième valeur la plus grande / la plus petite de la liste en Python
Je veux obtenir le nom de la fonction / méthode en cours d'exécution
Extraire l'index de la set list d'origine correspondant à la liste des sous-ensembles.
J'ai essayé d'obtenir une liste de noms AMI en utilisant Boto3
Comment obtenir une liste excluant les éléments dont l'index est i ...?
10 méthodes pour améliorer la précision de BERT
Obtenez la liste des colonnes et la liste des données de CASTable
Obtenez la valeur de la couche intermédiaire de NN
J'ai essayé d'obtenir les résultats de Hachinai en utilisant le traitement d'image
[Linux] Une commande pour obtenir une liste des commandes exécutées dans le passé
J'ai essayé d'obtenir le code d'authentification de l'API Qiita avec Python.
Je souhaite trier une liste dans l'ordre des autres listes
J'ai essayé d'obtenir automatiquement le RSS de la chanson la plus populaire de l'iTunes Store
J'ai essayé d'obtenir les informations sur le film de l'API TMDb avec Python
J'ai essayé d'afficher la valeur d'altitude du DTM dans un graphique
J'ai mesuré la vitesse de la notation d'inclusion de liste, pendant et pendant avec python2.7.
[Pour les débutants] Je veux obtenir l'index d'un élément qui satisfait une certaine expression conditionnelle
Je veux obtenir le chemin du répertoire où le fichier en cours d'exécution est stocké.
J'ai utilisé gawk pour connaître la valeur maximale qui entre dans NF.
L'histoire de l'adresse IPv6 que je souhaite conserver au minimum
J'ai vérifié la liste des touches de raccourci de Jupyter
J'ai essayé de corriger la forme trapézoïdale de l'image
Je veux obtenir les données de League of Legends ③
Je veux obtenir les données de League of Legends ②
Je souhaite voir une liste de fichiers WebDAV dans le module Requêtes
Script Python pour obtenir une liste d'exemples d'entrée pour le concours AtCoder
Rechercher par la valeur de l'instance dans la liste
Je souhaite personnaliser l'apparence de zabbix
Je veux obtenir les données de League of Legends ①
Comment obtenir une liste de fichiers dans le même répertoire avec python
[Introduction à Python] Comment obtenir l'index des données avec l'instruction for
J'ai essayé de vectoriser les paroles de Hinatazaka 46!
Je veux commencer avec le noyau Linux, quelle est la structure de la tête de liste?
Convertir un objet de tranche en liste de numéros d'index
Je veux grep le résultat de l'exécution de strace
J'ai essayé de résumer la forme de base de GPLVM
[python] Récupère la liste des classes définies dans le module
[Langage C] [Linux] Récupère la valeur de la variable d'environnement
Je veux bien comprendre les bases de Bokeh
Essayez d'obtenir le contenu de Word avec Golang
J'ai mesuré les performances d'un million de documents avec mongoDB
[Python] Obtenir la liste des noms ExifTags de la bibliothèque Pillow
J'ai essayé de visualiser les informations spacha de VTuber
Python: obtenir une liste de méthodes pour un objet