IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Calcul scientifique Python Discussion :

Apprendre l'analyse scientifique avec Python [Tutoriel]


Sujet :

Calcul scientifique Python

  1. #1
    Membre habitué
    Avatar de yannick.copin
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Octobre 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2017
    Messages : 3
    Points : 145
    Points
    145
    Par défaut Apprendre l'analyse scientifique avec Python
    Chers membres du club,

    J'ai le plaisir de vous présenter ce tutoriel  :


    Ce cours est une initiation au langage Python et à son utilisation dans le domaine de l'analyse scientifique (manipulation de données numériques). Il a avant tout été développé comme support pour des enseignements en présentiel de 20h environ, et ne se veut donc pas complet : beaucoup d'éléments sont développés à l'oral, notamment les solutions des exercices.
    Bonne lecture

    Retrouvez les meilleurs cours et tutoriels pour apprendre Python.

  2. #2
    Membre éprouvé

    Homme Profil pro
    Ingénieur
    Inscrit en
    Août 2010
    Messages
    661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2010
    Messages : 661
    Points : 1 159
    Points
    1 159
    Par défaut
    Bonjour,

    Votre tuto est concis, mais assez complet. Pas mal du tout! J'ai une interrogation tout de fois. Pourquoi Python 2?

    Sinon sur la partie lecture/écriture fichier, même si je comprends la pédagogie derrière le choix open + close, si je devais ne mettre qu'un exemple je choisirais de le faire avec with :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    outfile = open("carres.dat", 'w')
    for i in range(1, 10):
        outfile.write("{}  {}\n".format(i, i**2))
    outfile.close()
    Devriendrait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for i in range(1, 10):
        with open("carres.dat", "w") as outfile:
            outfile.write("{}  {}\n".format(i, i**2))
    Ciao ciao

    J

  3. #3
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 610
    Points : 2 074
    Points
    2 074
    Par défaut
    Je suis assez d'accord et le fait que ce soit en python2 fait que je n'ai pas cherché si cela était vraiment bien élaboré.
    Question à Julien N : avec ta méthode (que j'utilise assez souvent), le fichier n'est-il pas ouvert 9 fois (contre 1 sinon) ?

  4. #4
    Membre éprouvé

    Homme Profil pro
    Ingénieur
    Inscrit en
    Août 2010
    Messages
    661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2010
    Messages : 661
    Points : 1 159
    Points
    1 159
    Par défaut
    Citation Envoyé par marco056 Voir le message
    Question à Julien N : avec ta méthode (que j'utilise assez souvent), le fichier n'est-il pas ouvert 9 fois (contre 1 sinon) ?
    Si . J'ai été un peu vite, il faudrait ouvrir le fichier avant la boucle...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    with open("carres.dat", "w") as outfile:
        for i in range(1, 10):
            outfile.write("{}  {}\n".format(i, i**2))

  5. #5
    Membre habitué
    Avatar de yannick.copin
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Octobre 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2017
    Messages : 3
    Points : 145
    Points
    145
    Par défaut
    Bonjour, et merci pour vos commentaires.

    Citation Envoyé par Julien N Voir le message
    Votre tuto est concis, mais assez complet. Pas mal du tout! J'ai une interrogation tout de fois. Pourquoi Python 2?
    C'est simple:
    • raison historique: j'ai commencé ce cours en 2012, à l'époque de Python 3.2 encore considéré comme "préliminaire"
    • raison pratique: les enseignements se font sur des machines de l'université dont je n'ai pas le contrôle, et qui sont nativement équipées de Python 2.7

    Il est clair que le portage à Python 3 est nécessaire à terme, mais il ne me semble pas crucial pour une introduction à Python. J'aborde ces questions en Sec. II.K.1 (http://yannick-copin.developpez.com/...python#LII-K-1)

    Citation Envoyé par Julien N Voir le message
    Sinon sur la partie lecture/écriture fichier, même si je comprends la pédagogie derrière le choix open + close, si je devais ne mettre qu'un exemple je choisirais de le faire avec with
    Il y a un certain nombre de fonctionnalités Python que je passe sous silence dans cette introduction (cf. Sec. II.K), dont la gestion de contexte (with) qui ne me semble pas primordiale dans une introduction.

    Cordialement,

    Yannick

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    614
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 614
    Points : 714
    Points
    714
    Par défaut
    Bonjour,

    je vais me permettre de rebondir sur ces remarques quand au choix Python 2 qui sont, je vais être direct, inacceptables.

    Citation Envoyé par yannick.copin Voir le message
    raison historique: j'ai commencé ce cours en 2012, à l'époque de Python 3.2 encore considéré comme "préliminaire"
    donc j'en déduis que ce tuto a été écrit en 2012 et que c'est un simple rappel publicitaire sans valeur ajoutée ni maintenance depuis 6 ans.

    raison pratique: les enseignements se font sur des machines de l'université dont je n'ai pas le contrôle, et qui sont nativement équipées de Python 2.7
    D'une part, vous ne pouvez sérieusement pas demander à avoir des machines à jour de moins de 6 ans ?

    Quand bien même, ce tuto vous le publiez sur un site public hors université, il se doit d'être un minimum à jour. Et même si vous vous vous reposez sur des machines ne vous proposant que l'interpréteur Python 2, en bientôt 2018, vous devez au moins écrire du code compatible Python 3, donc inclusion de future. Car

    Il est clair que le portage à Python 3 est nécessaire à terme, mais il ne me semble pas crucial pour une introduction à Python.
    et bien si c'est pour de l'enseignement autre que l'archéologie des langages, si. Nous sommes bientôt en 2018, le support de Python 2 prends fin en 2020. Les dépendances principales commencent à abandonner le support de Python 2 (Django 2 sorti il y a quelques jours a ouvert ce bal). Vous parlez de Python scientifique, Numpy abandonnera le support de Python 2 en 2019, Scipy lui emboitera le pas

    Alors non, c'est inacceptable aujourd'hui de lire du code Python avec un au lieu d'un et toutes les autres incompatibilité Python 3. Oui, il va être compliqué d'expliquer pourquoi écrire vu que range en Python 2 génère une liste.

    Je suis sévère et je ne prends plus de pincettes sur ce sujet. Je sais que c'est du boulot pour mettre tout un cours à jour…*Je le sais car je l'ai fait il y a un an. Mais je me permet d'être d'autant plus sévère que votre cours complet (celui de readthedocs) couvre un nombre pertinent de points.

    Et c'est d'autant plus triste qu'il y a énormément de manque de rigueur… Énormément de violations de la PEP8 (déjà le choix d'une variable avec un caractère mais en particulier ). Un avec des parenthèses redondantes qui peut se simplifier en et dans ce cas particulier en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for i in range(0, 10, 3)
    … Ok, je sais, c'était là pour l'exemple du filtre de la liste en intension.

    Bref, si j'ai pris la peine d'intervenir certes de manière sévère, c'est que ce cours mérite d'être mis à jour et qu'aujourd'hui, aucune excuse de non-mise à jour n'est valable si vous voulez assurer un enseignement de qualité.

  7. #7
    Membre habitué
    Avatar de yannick.copin
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Octobre 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2017
    Messages : 3
    Points : 145
    Points
    145
    Par défaut
    Avant de me faire allumer plus avant, je voudrais que les choses soient bien claires. Je n'ai rien demandé à personne: l'équipe de developpez.net m'a contacté pour mettre en ligne le cours de python (http://informatique-python.readthedocs.io/) que j'enseigne depuis quelques années. Je fournis donc ce matériel pédagogique à la communauté as it is: si vous avez des commentaires cordiaux et constructifs, ils sont les bienvenus; si vous avez des problèmes philosophiques avec mes méthodes d'enseignement, ma façon de coder ou le choix Python 2/3, ne perdez pas votre temps à me crier dessus.

  8. #8
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 610
    Points : 2 074
    Points
    2 074
    Par défaut
    Citation Envoyé par yannick.copin Voir le message
    Avant de me faire allumer plus avant, je voudrais que les choses soient bien claires. Je n'ai rien demandé à personne: l'équipe de developpez.net m'a contacté pour mettre en ligne le cours de python (http://informatique-python.readthedocs.io/) que j'enseigne depuis quelques années. Je fournis donc ce matériel pédagogique à la communauté as it is: si vous avez des commentaires cordiaux et constructifs, ils sont les bienvenus; si vous avez des problèmes philosophiques avec mes méthodes d'enseignement, ma façon de coder ou le choix Python 2/3, ne perdez pas votre temps à me crier dessus.
    Bonjour,
    J'ai commencé à enseigner la programmation à la même époque.
    Mes collègues et moi avons suivi une formation en python2 mais nous avons décidé d'enseigner la version 3 tout de suite.
    Mon premier message indiquait un non intérêt pour cette version : je ne regarderai pas votre tuto parce qu'il est en python2.
    Après, on peut quand même vous remercier de mettre à dispo ce cours (même s'il ne servira pas à grand monde et que je ne pourrai pas le conseiller à mes étudiants).
    martopioche a raison sur le fond : sur la forme, on peut discuter
    Bonnes fêtes de fin d'année à tous et toutes

  9. #9
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 311
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 311
    Points : 12 830
    Points
    12 830
    Par défaut
    Bonjour,

    Je trouve que vous êtes un peu sévère, ici, le responsable, ce n'est pas yannick.copin mais plus ceux qui lui on demandé de fournir son doc.
    Le doc est concis, il bypass pas mal de concept, mais comme indiqué, en principe, ce n'est qu'un support de court et il fait le boulot.

    Après le choix de la version python 2 au lieu de python 3 ne retire en rien le principe et si en tant que développeurs, vous n'êtes pas capable de vous adapter pour passer de l'un à l'autre, faut arrêter ce métier.

    D'ailleurs une petite parenthèse:
    n'est pas
    Et faut arrêter de dire que python 2 est dépassé: il tourne encore beaucoup en entreprise. Python 3 n'est que très rarement installé de base sur un serveur à l'heure actuelle.

    Tant que l'on est dans une phase de transition, ce qui est le cas pour au moins 3 ans, un doc sous python 2 est toujours d'actualité.
    Surtout qu'ici, le doc n'est pas sur python en lui-même mais comment s'en servir...

  10. #10
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 610
    Points : 2 074
    Points
    2 074
    Par défaut
    Pas de souci quant à la qualité du travail.
    De mon côté, c'est simplement inutilisable pour mon enseignement mais ce n'est pas bien grave.

  11. #11
    Community Manager

    Avatar de Malick
    Homme Profil pro
    Community Manager
    Inscrit en
    Juillet 2012
    Messages
    9 231
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Community Manager
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2012
    Messages : 9 231
    Points : 85 299
    Points
    85 299
    Billets dans le blog
    15
    Par défaut
    Salut à tous,

    Merci pour vos différents retours.

    Cela dit, j'ai moi-même contacté Yannick pour publier son cours, et à mon avis c'est toujours un plus pour ceux qui veulent s'initier à Python, d'autant plus que certains ne sont pas encore passé à Python 3.

    Sinon, je remercie encore Yannick pour son tutoriel.

Discussions similaires

  1. [Python 2.X] Créer des graphiques scientifiques avec python
    Par hichem0550 dans le forum Général Python
    Réponses: 2
    Dernier message: 15/04/2016, 08h16
  2. [Python 2.X] Créer des graphiques scientifiques avec python
    Par hichem0550 dans le forum Calcul scientifique
    Réponses: 5
    Dernier message: 12/04/2016, 12h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo