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é.
  • Editeur
  • Markdown