Partage
  • Partager sur Facebook
  • Partager sur Twitter

Exercice Librairie python pour data sciences

    22 octobre 2018 à 19:29:29

    Bonjour

    Je suis les cours data scientist. Habitué des logiciels user friendly style unscrambler, je me trouver fort dépourvu avec Python.

    Voulant effectuer le 1er exercice, je me trouve devant un cas insoluble :

    - np.random.rand(0,2) me fait planter le script.

    - je ne sais pas réunir play_game et play.

    - je cours n'explique pas comment convertir une liste en matrice (car il faut bien utiliser un script de type sommes = np.sum(matrice_aleatoire,0) pour remplacer la boucle for, non ?)

    Merci d'avance.

    Cordialement


    Note : voici mon code.

    %matplotlib inline
    import numpy as np
    from random import randint, seed
    from enum import Enum
    import matplotlib.pyplot as plt

    # Ici nous définissons une sous-classe de Enum, qui contiendra
    # les stratégies possibles.
    class Strategie(Enum):
        CHANGER = 1
        GARDER = 2

    # Utilise l'horloge système pour initialiser le générateur de
    # nombres pseudo-aléatoires.
    seed()


    def play_game(strategie):
        portes = [0, 1, 2]
        bonne_porte = np.random.rand(0,2)

        # Choix du joueur
        premier_choix = np.random.rand(0,2)

        # Il nous reste deux portes
        portes.remove(premier_choix)

        # Le présentateur élimine une porte
        if premier_choix == bonne_porte:
            portes.remove(portes[np.random.rand(0,1)])
        else:
            portes = [bonne_porte]

        deuxieme_choix = 0

        # Le deuxieme choix depend de la strategie
        if strategie == Strategie.CHANGER:
            deuxieme_choix = portes[0]
        elif strategie == Strategie.GARDER:
            deuxieme_choix = premier_choix
        else:
            raise ValueError("Stratégie non reconnue!")

        return deuxieme_choix == bonne_porte
       

    def play(strategie, nb_tours):
         # ma conversion foireuse de liste vers une matrice.
        matrice_a_grapher = 1 if play_game(strategie) else 0 for i in range(nb_tours)
        fig = plt.figure()
        plot1 = plt.scatter(matrice_a_grapher[0,:])
        plot2 = plt.scatter(matrice_a_grapher[1,:])
     
    print("En changeant de porte, le joueur a gagné {} sur 10000 parties."
          .format(sum(play(Strategie.CHANGER, 10000))))

    print("En gardant son choix initial, le joueur a gagné {} sur 10000 parties."
          .format(sum(play(Strategie.GARDER, 10000))))
         
    plot = plt.bar([1,2],[sum(play(Strategie.CHANGER, 10000)),
                   sum(play(Strategie.GARDER, 10000))],
            tick_label=["Changer","Garder"])
           

    # NUAGE DE POINTS POUR VOIR LES GAINS (
    gains_changer = []
    gains_garder = []
    samples =  [1000, 10000, 20000, 50000, 80000, 100000]
       
    figure = plt.figure(samples)
    plot = plt.scatter(samples, [np.sum(matrice_a_grapher,0)])
    plot = plt.scatter(samples, [np.sum(matrice_a_grapher,1)])

    -
    Edité par RichardChazal1 22 octobre 2018 à 20:02:07

    • Partager sur Facebook
    • Partager sur Twitter

    Exercice Librairie python pour data sciences

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown