Qu'est-ce qui est le plus rapide, le mélange Python ou l'échantillon?

salutation

Ravi de vous rencontrer, c'est cells_comp. Moi, qui était un spécialiste du ROM, j'ai commencé Qiita à minuit. Je suis désolé que le premier article à commémorer soit un si mauvais article, mais j'aimerais publier ce que j'ai proposé pour le moment.

Ce que j'ai essayé

Si vous voulez trier les éléments de list (l) aléatoirement en Python, réfléchissez simplement

--Trier par random.shuffle (l) --Trier par l2 = random.sample (l, len (l)) --Correctement, "l'acquisition aléatoire du nombre spécifié de la liste sans duplication" est effectuée. --Le nombre spécifié = tous les éléments, le résultat est donc une liste mélangée.

Je pense que cela sortira. Au fait, laquelle de ces deux méthodes est la plus rapide? Vous pouvez entendre une voix disant ** Utilisez numpy si vous voulez dire vitesse **, mais pardonnez-moi s'il vous plaît.

Environnement d'exécution

Python 3.5.5 Intel® Core™ i7-6700 3.4GHz Windows10 (WSL) Ubuntu 16.04 LTS

Résultat d'exécution

Dans le cas de random.shuffle

La liste cible contient des entiers.

import random
import time

if __name__ == '__main__':
    l = [i for i in range(1000000)]
    start = time.time()
    random.shuffle(l)
    elapsed_time = time.time() - start
    print("elapsed_time:" + str(format(elapsed_time)) + "s")

résultat

elapsed_time:0.6656289100646973s

Pour random.sample

import random
import time

if __name__ == '__main__':
    l = [i for i in range(1000000)]
    start = time.time()
    l2 = random.sample(l,len(l))
    elapsed_time = time.time() - start
    print("elapsed_time:" + str(format(elapsed_time)) + "s")

résultat

elapsed_time:0.7895145416259766s

Oui, random.shuffle () est environ 20% plus rapide. Après tout, ce n'est pas optimal car il s'agit à l'origine d'une fonction d'extraction aléatoire.

prime

import random
import time
import numpy

if __name__ == '__main__':
    l = [i for i in range(1000000)]
    start = time.time()
    numpy.random.shuffle(l)
    elapsed_time = time.time() - start
    print("elapsed_time:" + str(format(elapsed_time)) + "s")

résultat

elapsed_time:0.1087648868560791s

***la fin! Fermé! c'est tout! Tout le monde s'est dissous! *** ***

en conclusion

Oui, c'est mon premier message. J'avais tellement peur que je ne l'ai pas posté jusqu'à présent, mais quand je l'essaye, c'est facile. C'est un message auto-satisfaisant, mais j'espère qu'il aidera même une personne. Je souhaite continuer à publier en temps opportun. Eh bien, merci pour votre coopération.

Recommended Posts

Qu'est-ce qui est le plus rapide, le mélange Python ou l'échantillon?
Quel est le meilleur, PyPy ou Python?
Le cycle de publication de Python est plus rapide!
[Python] Qui est exécuté en premier, variable de classe ou __init__?
[Les débutants sont inquiets] Quel est le meilleur, Ruby, PHP ou Python?
Déterminer le système d'exploitation exécutant Python
Ce qui est plus rapide à utiliser l'instruction if ou le type de dictionnaire lors de la conversion d'une chaîne (a-> b) en Python
Python est facile
Redémarrez vhost ou Apache, qui est souvent oublié
Exemple de fermeture Python
Qu'est-ce que python
[Python] Qui doit être utilisé, renvoyer ou renvoyer Aucun
Python est une instance
Qu'est-ce que Python
[Petite histoire] En Python, i = i + 1 est légèrement plus rapide que i + = 1.
Le datetime Python3 est plus rapide en spécifiant simplement le fuseau horaire
[Linux] Fin du processus ou du travail, quel est le meilleur?
python int est infini
@ Est plus rapide que dot
Python> liste> extend () ou + =
[Python] Qu'est-ce que Pipeline ...
Python depuis ou import
autotest ou sniffer python
Exemple Ajax + Python + PostgreSQL
Mémorandum @ Python OR Séminaire
[Python] Qu'est-ce que virtualenv
Python - Échantillon multi-thread simple
[Confrontation! Puissance humaine vs Python] Après tout, ce qui est plus rapide, résoudre les mathématiques du test central avec Python ou le résoudre par vous-même?
Quel est l'outil de visualisation Python le plus populaire après tout?
Analyse par raisonnement bayésien (1) ... Quel est le meilleur, A ou B?
Lequel dois-je étudier, R ou Python, pour l'analyse des données?
[Python] Est-ce que l'objet nul mais non vide est Vrai ou Chute?
Qu'est-ce qui est le plus rapide, le mélange Python ou l'échantillon?
[Python] pandas Code susceptible d'être réutilisé
Etrange message d'erreur Python —— Ce code est-il vraiment exécuté?
Le cycle de publication de Python est plus rapide!