PYTHON NUMPY BROADCASTING (13/30)

Sdílet
Vložit
  • čas přidán 24. 07. 2024
  • Ce tutoriel python en français vous présente numpy et une de ses caractéristiques essentielles: Le broadcasting. Cette technique nous permet de très facilement faire des opérations mathématiques entre plusieurs tableaux numpy à N-dimension (nd array). Numpy étant développé en C, il présente une rapidité d'execution redoutable, ce qui rend python incroyablement simple et puissant.
    Avec le broadcasting, on peut également étendre les dimensions de tableaux numpy à N-dimension, lorsque la dimension initiale est égale à 1.
    Timecode de la vidéo:
    0:00 Intro
    00:32 Qu'est ce que c'est le Broadcasting ? Pourquoi Numpy est si PUISSANT ?!
    01:46 Les règles du broadcasting: meme dimensions ou dimension = 1
    05:19 Mini exercice de broadcasting
    07:27 Exemple en Machine Learning (DANGER)
    10:49 Corrigé exercice de la dernière vidéo
    12:45 BILAN sur NUMPY
    ► Vidéo sur la Régression linéaire Numpy
    • RÉGRESSION LINÉAIRE NU...
    ► ARTICLE EN COMPLÉMENT DE CETTE VIDÉO:
    machinelearnia.com/
    ► Soutenez-moi sur Tipeee pour du contenu BONUS:
    fr.tipeee.com/machine-learnia
    ► REJOINS NOTRE COMMUNAUTÉ DISCORD
    / discord
    ► Recevez gratuitement mon Livre:
    APPRENDRE LE MACHINE LEARNING EN UNE SEMAINE
    CLIQUEZ ICI:
    machinelearnia.com/apprendre-...
    ► Téléchargez gratuitement mes codes sur github:
    github.com/MachineLearnia
    ► Abonnez-vous : / @machinelearnia
    ► Pour En Savoir plus : Visitez Machine Learnia : machinelearnia.com/
    ► Qui suis-je ?
    Je m’appelle Guillaume Saint-Cirgue et je suis Data Scientist au Royaume Uni. Après avoir suivi un parcours classique maths sup maths spé et avoir intégré une bonne école d’ingénieur, je me suis tourné vers l’intelligence artificielle de ma propre initiative et j’ai commencé à apprendre tout seul le machine learning et le deep learning en suivant des formations payantes, en lisant des articles scientifiques, en suivant les cours du MIT et de Stanford et en passant des week end entier à développer mes propres codes.
    Aujourd’hui, je veux vous offrir ce que j’ai appris gratuitement car le monde a urgemment besoin de se former en Intelligence Artificielle.
    Que vous souhaitiez changer de vie, de carrière, ou bien développer vos compétences à résoudre des problèmes, ma chaîne vous y aidera.
    C’est votre tour de passer à l’action !
    ► Une question ? Contactez-moi: contact@machinelearnia.com

Komentáře • 198

  • @ayoubalimoussa4689
    @ayoubalimoussa4689 Před rokem +3

    je ne sais pas comme à vous remercier, mais je tiens vraiment à vous dire merci. ce que vous nous présentez est très intéressant pour tout les étudiants en ingénierie informatique.

  • @darkmessiah8087
    @darkmessiah8087 Před rokem

    Merci beaucoup pour ces explications très limpides et cette approche pédagogique, excellente vidéo !

  • @2msynergygroup
    @2msynergygroup Před 2 lety

    Excellent formateur. Merci beaucoup

  • @zakariabougassa3092
    @zakariabougassa3092 Před 2 lety

    Merci infiniment pour ces videos de grande qualité

  • @louaykhammar7268
    @louaykhammar7268 Před 2 lety

    Merci pour cette vidéo, super qualité comme toujours

  • @pierrebruzac6908
    @pierrebruzac6908 Před 2 lety +6

    Merci pour cette vidéo de qualité. C'est toujours avec plaisir que je te regarde ! (On sent le passionné qui est en toi !!!)

  • @OuahibaBOUGLIMINA
    @OuahibaBOUGLIMINA Před 2 měsíci

    Vraiment ! un grand travail. excellente méthodologie d'expliquer les choses .you are the best teacher

  • @maryemroussafi4598
    @maryemroussafi4598 Před 5 měsíci

    merci pour cette formation vraiment grace a toi j'ai compris beaucoup de chose

  • @hubertorhant8884
    @hubertorhant8884 Před rokem +6

    Encore un record de clarté pédagogique ! Jusqu'où iras tu ? Mils mercis 💥

  • @s.k.8615
    @s.k.8615 Před 9 měsíci

    Juste incroyable, j'ai envie de taper à la main mille merci après chaque vidéo...

  • @gregcole2740
    @gregcole2740 Před 2 lety

    tout simplement parfait ! Merci !!!

  • @souery6280
    @souery6280 Před 3 lety +1

    Je vous adore et j'adore énormément tous vos vidéos, sachez que vous êtes génial !

  • @mohammedbellahcene9508

    merci pour ce cours qui est très bien expliqué et félicitation pour cette intervention de très haut niveau

  • @adrienalbarazi8340
    @adrienalbarazi8340 Před 3 lety +3

    "Si ça c'est pas un belle line! " j'adore :)
    Merci Guillaume pour votre travail et votre temp. votre façon d'expliquer vos idées est irreprochable
    vous avez rendu l'apprentissage de Machine Learning accessible à tous. Merci

    • @MachineLearnia
      @MachineLearnia  Před 3 lety

      Merci beaucoup, ca me fait très plaisir de lire vos compliments :)

  • @amyd.2840
    @amyd.2840 Před 4 lety +3

    Merci pour cette vidéo, super qualité comme toujours :D

  • @master-tech1815
    @master-tech1815 Před 4 lety

    Voilà un Monsieur Qui maîtrise bien ce qu'il fait, vous êtes mon meilleur

  • @ld2037
    @ld2037 Před rokem

    j aime beaucoup votre chaine tres instructive et j aime aussi votre musique d intro et de conclusion

  • @pulsorion
    @pulsorion Před 4 lety +3

    Super intéressant comme d'hab !

  • @MachineLearnia
    @MachineLearnia  Před 4 lety +8

    Timecode de la vidéo:
    00:32 Qu'est ce que c'est le Broadcasting ? Pourquoi Numpy est si PUISSANT ?!
    01:46 Les règles du broadcasting: meme dimensions ou dimension = 1
    05:19 Mini exercice de broadcasting
    07:27 Exemple en Machine Learning (DANGER)
    10:49 Corrigé exercice de la dernière vidéo
    12:45 BILAN sur NUMPY

  • @REN_CODE56
    @REN_CODE56 Před 2 měsíci +1

    Salut jai 14ans je suis en 3eme j'adore le code et l'ia ce que tu fais est super intéressant ça me permet d'apprendre ce que j'adore et pouvoir m'améliorer tu expliques super bien ! Merci beaucoup

  • @Marie-OdetteATONDE
    @Marie-OdetteATONDE Před 10 měsíci

    Merci pour tout😊

  • @yahiabammoune1716
    @yahiabammoune1716 Před 2 lety

    merci pour la qulité de vos tutos

  • @sanouba7779
    @sanouba7779 Před rokem

    encore une fois merci

  • @gazdallahamira2765
    @gazdallahamira2765 Před 2 lety

    J'ai jamais vu un formateur aussi cool comme vous!!
    Je suis in love avec votre méthode d'explication.
    Pouvez vous faire un vidéo d'un projet de machine learning ?
    Merci beaucoup pour votre effort!

    • @MachineLearnia
      @MachineLearnia  Před 2 lety

      Merci, je suis flatté ^^
      Oui j'ai fait des projets dans la suite de la série.

  • @mohamedgarmouma1541
    @mohamedgarmouma1541 Před 3 lety

    Merci infiniment Guillaume

  • @melodie6948
    @melodie6948 Před 4 lety +4

    J'adore le super acteur à 03:40 :) :)
    Merci bcp pour toutes ces vidéos! J'ai remplacé Netflix par cette série de vidéo!!!!! :)

    • @MachineLearnia
      @MachineLearnia  Před 4 lety +2

      Ahaha ! J'avais oublié ça ! Mettre de coté les distractions pour se consacrer à son développement personnel ! BRAVO ! tu iras loin ;)

    • @melodie6948
      @melodie6948 Před 4 lety

      @@MachineLearnia Mercii!! Je l'espère !! :) :)

  • @maximebonneau9685
    @maximebonneau9685 Před 3 lety

    Génial merci Guillaume

  • @jean-louissornay2756
    @jean-louissornay2756 Před 2 lety

    bonjour, merci pour cette vidéos qui me permet de progressé dans mon apprentissage du machine learning. je suis à la retraite mais je me passionne pour cette technologie depuis quelques temps, merci encore pour ton aide.

    • @MachineLearnia
      @MachineLearnia  Před 2 lety

      Merci pour le message. Je suis ravi de voir que des gens qui sont a la retraite s'intéresse a cela ! (vous n'etes pas le premier dans ce cas sur la chaine youtube!)

  • @GuilhermeZip
    @GuilhermeZip Před 4 lety

    Parfait! Merci beaucoup

  • @sohaibeboss
    @sohaibeboss Před rokem

    What a great course. This content shouldn't be free

  • @adyfall8319
    @adyfall8319 Před 3 lety

    Merci beaucoup!

  • @babeboom63
    @babeboom63 Před 4 lety

    merci pour ce beau resumer ❤

  • @aliounebadaraibnabutalibdi9095

    un grand merci

  • @florianraulet8910
    @florianraulet8910 Před 4 lety

    Salut Guillaume, avec mon pote d'école d'ingénieur (une ccp comme la tienne) on voulait apprendre le machine learning pour un projet qu'on a en commun, sans trop savoir par quoi commencer, et grâce à toi on se découvre une nouvelle passion pour la chose, après avoir toujours eu l'impression de s'être farci maths sup/spé pour ne jamais voir d'utilisation concrète de toutes ces connaissances. Et maintenant c'est enfin le cas. AU fur et a mesure qu'on apprend avec tes vidéos on pense tous les deux de plus en plus à se "réorienter" dedans tellement c'est passionnant. Donc merci pour tout, et on espère que tu vas continuer à nous apprendre des trucs parce que faire sans tes vidéos maintenant ça serait un sacré contre-temps, et merci pour cette incroyable pédagogie, j'ai partagé tout ça autour de moi ! :D

    • @MachineLearnia
      @MachineLearnia  Před 4 lety +1

      Merci beaucoup Florian ! Je me reconnais un peu dans ton histoire : quand j'ai découvert le Machine Learning en prépa j'ai tout de suite accroché et ça m'a permit de mieux comprendre certaines choses comme les valeurs propres et les vecteurs propres.

    • @florianraulet8910
      @florianraulet8910 Před 4 lety

      @@MachineLearnia c'est pour ça que t'as l'air déjà si qualifié et expert à seulement 26 ans?

  • @belkassem06
    @belkassem06 Před 4 lety +21

    Comme expected Merci pour cette video. You're the MAN.
    J'ai une question et une requete:
    Question:
    Quelle application utilises-tu pour faire tes videos (specialement montrez les exemples sur l'ecran a bandeau bleu en haut ET taper les codes en meme temps?).
    Pour moi la meilleure facon de savoir si j'ai compris c'est reprendre tes videos dans la peau du professor, dans mes propres mot. alors si je reecoute et suis satisfait alors je passe sur la lecons suivante, ELSE je reprend la boucle.
    Suggestion:
    Pourrais tu nous faire une serie sur OPENCV aussi si le temps te le permet un peu plus tard?
    The neural network et les computer vision field m'interessent a plus d'un point.
    Chacun a ses propres motivations en venant suivre tes explications ici. Pour moi le cancer m'a pris un etre tres cher et pour le reste de ma vie il(cancer) payera pour cela. Si un jour on le detecte plus tot ou meme predire son arrivee (ce que je crois possible avec l'IA) alors il ne fera plus du mal a un autre en ce moment je dormirais tranquille. Ca prendra le temp que ca prendra.
    Merci pour tes cours ca vaut de l'or crois moi.

    • @MachineLearnia
      @MachineLearnia  Před 4 lety +17

      Merci beaucoup pour ton commentaire ! un GRAND BRAVO pour ton engagement contre le cancer, je suis désolé pour ton proche. Oui le Deep Learning et le Machine Learning nous aide aujourd'hui pour prédire plus tôt certains cancers, dont le cancer du sein (le MIT a publié les résultats de leur recherches il y a quelques temps déjà) on espère tous que nous combattrons le cancer avec ça. Il ne faut pas hésiter à faire un don pour aider la recherche !
      Pour répondre à tes questions:
      1) Pour faire mes vidéos j'utilise Adobe Premiere Pro. Les graphiques sont en réalité fait sur power point et je fais un montage (parfois long ^^) pour intégrer le code avec et rendre ça plus ludique pour vous.
      -> Je mettrais tout le powerpoint accessible sur mon site Internet à la fin de la formation !
      2) Oui je ferai une série sur OPENCV à l'avenir, ca fait parti de mes plans :)
      Merci et à bientôt ! Bon courage dans ton apprentissage :)

  • @jamesmaxwell_it
    @jamesmaxwell_it Před 3 lety

    J'ai commencé en écrivant du code en hexadécimal et avec les mémoires ne dépassant pas le mégaoctet.. je crois qu'il y a autant d'écart avec l'actuelle puissance de python que les lances des premiers hommes et la tsar Bomba ... excellente vidéo , très intéressant..et j'arrive à peu près a comprendre c'est très plaisant pour mon âge canonique....j'imagine dans seulement 10 ans .....merci pour votre travail

    • @MachineLearnia
      @MachineLearnia  Před 3 lety

      Bonjour et merci pour votre commentaire, c'est un honneur de recevoir un message de la part d'une personne avec autant d'expérience ! :)

  • @Siamon34
    @Siamon34 Před 4 lety

    Encore une fois super vidéo j'ai bien compris le problème des dimensions de tableau et l'interet de reshape surtout!
    Le broadcasting j'ai pas encore trouvé de moyen de m'en servir là comme ça mais j'ai hâte de voir la suite.
    J'espère que ta chaine va continuer longtemps si t'as un Tipee je participerais dessus quand j'aurais tout terminé :D
    Ma proposition de resultat pour l'exercice precedent:
    def standardization (Ex):
    meanEx = Ex.mean(axis=0)
    StdEx = Ex.std(axis=0)
    ExmeanEx = Ex-meanEx
    standEx = ExmeanEx/StdEx
    print(standEx)
    standardization(Ex)
    comme ca jpeux même standardiser quand je veux un tableau maintenant ;p (enfin jcrois j'ai pas essayé :) )

    • @MachineLearnia
      @MachineLearnia  Před 4 lety +1

      Salut et merci beaucoup ! Oui tu verras on se sert du broadcasting très souvent par la suite (en fait c'est tout le temps implémenté dans les librairies comme Sklearn ou le calcul matriciel est déjà implémenté pour faire des algorithmes de Machine Learning)
      Ta fonction est valide, mais elle a le petit défaut d’être écrite sur beaucoup de lignes, alors qu'il suffirait d'en écrire une ou deux (mais ce n'est pas grave, tu peux déjà te féliciter d'avoir fait l'exercice, c'est bien !) Comme d'habitude tu pourras trouver la réponse dans la vidéo suivante.
      Donc oui tu peux standardiser des dataset, bravo ! Dans la pratique on utilisera les fonctions toutes prêtes de Sklearn pour faire des opérations de normalisation (MinMaxScaler, StandardScaler, etc.) tu vas adorer, j'en suis sur ! ;)
      J'ai en effet un Tipeee, et également un serveur discord sur lequel tu es invité : il y a d'autres data scientists et nous discutons de projets, nous répondons aux questions etc. (et je te remercie d'avance si tu me soutiens un jour sur Tipeee)

  • @mimanehichem586
    @mimanehichem586 Před 3 lety

    Merci énormément

  • @darkiche3689
    @darkiche3689 Před 3 lety

    Merci encore ! :D

  • @TBaguette
    @TBaguette Před 4 lety

    Cette série de vidéos est une véritable mine d'or ! Un énorme Merci pour la qualité que tu offres. Il y a des tonnes de cours payants qui n'arrivent pas à la cheville de ta série sur le Machine Learning, j'ai vraiment l'impression de tout apprendre à vitesse grand V.
    Petite question : est-ce que tu aurais des idées de projets à essayer une fois toute cette série terminée ? Peut-être en proposes-tu déjà dans une vidéo plus loin mais je voulais être sûr de pouvoir pratiquer dès que j'ai fini ta série.
    Encore Mille Mercis, je sais même pas comment te remercier assez, t'as pas idée. Les non-francophones ont de quoi nous envier ta série de vidéos sur le ML sans même le savoir.

    • @MachineLearnia
      @MachineLearnia  Před 4 lety +1

      Merci beaucoup ton message me fait très plaisir :) Je fais de mon mieux pour aider les gens gratuitement avec tu contenu unique !
      Pour t'entrainer, je te conseille de te rendre sur le site Kaggle.com et d'essayer de résoudre le dataset du titanic et celui de la prédiction immobiliere. Mais en effet nous allons faire des projets ensemble sur la chaine youtube (a partir de la video 26/30 qui est pour bientot !) Sinon a l'avenir je vais faire beaucoup de videos projet.
      PS : si tu veux me soutenir, je dispose d'une page tipeee sur laquelle j'offre quelques videos Bonus, mais surtout ne te sens pas obligé ! ^^
      A bientot, et si tu as la moindre question, n'hésite pas !

    • @TBaguette
      @TBaguette Před 4 lety

      ​@@MachineLearnia Merci beaucoup, je vais check ça au plus vite ! Je suis fauché actuellement mais si j'arrive à obtenir un boulot ça sera en partie grâce à toi donc je te revaudrai ça dès que je peux. :)

    • @MachineLearnia
      @MachineLearnia  Před 4 lety

      @@TBaguette Si tu arrives a trouver un travail grace a mon aide, fais le moi savoir, ca me fera tellement plaisir ! C'est bien plus important de savoir que j'aurais pu aider quelqu'un a changer de vie ! :D

  • @josephwandji8621
    @josephwandji8621 Před 4 lety

    Un pur regal

  • @Gravenilvectuto
    @Gravenilvectuto Před 4 lety +4

    Commentaire

  • @nzakiesembongoarlain2513
    @nzakiesembongoarlain2513 Před 4 lety +1

    Merci,
    je aimerai que vous fassiez si possible un cours complet sur les réseaux de neurones, j'ai assisteé beaucoup de cours sur youtube, mais sans flatterie vous êtes le meilleur,
    vraiment c'est mon avis

  • @abderrazakcroxup321
    @abderrazakcroxup321 Před 4 lety

    great teacher ;)

  • @nekro3115
    @nekro3115 Před 3 lety

    super,hate d'attaquer la suite ! :D

    • @MachineLearnia
      @MachineLearnia  Před 3 lety

      Ta motivation est légendaire, bravo ! :D

    • @nekro3115
      @nekro3115 Před 3 lety

      @@MachineLearnia en espérant que sa dure après la rentrée -_-

    • @MachineLearnia
      @MachineLearnia  Před 3 lety

      @@nekro3115 Mais oui ! Courage !

  • @LMGaming0
    @LMGaming0 Před 4 lety

    Perfect !

  • @ggidf4118
    @ggidf4118 Před rokem +1

    Je découvre tes formations et j'adore ! Petite question : il y a-t-il un ordre dans lesquelles les suivres? Je suis actuellement sur cette playlist python ML, est il conseillé de terminer la formation ML d'abord? Merci d'avance si jamais tu vois ce com !

  • @vgflyway1063
    @vgflyway1063 Před 3 lety

    Tu es trop fort

    • @MachineLearnia
      @MachineLearnia  Před 3 lety

      Bonjour, la formation est disponible sur CZcams Gratuitement, je dois juste sortir les autres épisodes, qui arrivent rapidement

  • @mauriceguizard8813
    @mauriceguizard8813 Před 4 lety

    Houlala , c'est un peu la 4ème dimension , tout s'explique tant que les 2 dimensions sont présentes , après avec la notation (1,) ou (x,) et x est égal aux colonne de l'autre matrice ...on ne joue plus avec des matrices , mais avec une espèce de liste qui peut produire n'importe quelle matrice carré
    Ta solution l'exercice en est une bonne démonstration. Pour avoir comparé cela avec ma méthode (classique)
    for i in range(b):
    for j in range(a):
    E[j,i]= (D[j,i]-D.mean(axis=0)[i])/D.std(axis=0)[i]
    la tienne est au moins 20 fois plus rapide, donc jouer avec le feu est vraiment intéressant (mais quelle souffrance de mise au point en perspective).
    Merci d'avoir appuyé sur ce qui ... fera mal

    • @MachineLearnia
      @MachineLearnia  Před 4 lety

      Tu as l'intelligence de comprendre que en effet les dimensions des tableaux numpy vont un jour ou l'autre te poser probleme, mais ce n'est pas un "Big Deal" comme on dit, on détecte le probleme rapidement, et Python nous indique souvent dans ses erreurs qu'il faut parfois utiliser un reshape ou bien un squeeze (selon le contexte) :)

  • @pseudounknow5559
    @pseudounknow5559 Před 3 lety +1

    13 vidéos en 1 jour je suis épuisé je finirai la série demain après les cours haha

    • @MachineLearnia
      @MachineLearnia  Před 3 lety

      13 vidéos en 1 JOUR ! Mais WOW ! Je pensais pas que c'était possible sérieusement je rigole pas ! Ta motivation m'impressionne, je vais en prendre de la graine.

  • @kaistaboubi9146
    @kaistaboubi9146 Před 4 lety

    merci infiniment pour ces vidéos, c'est vraiment très très intéressantes, vous fêtes bcp d'efforts. J'ai bcp aimé cette formation.
    SVP, et pour la corection de l'exercice de Standardisation d'une matrice (tableau NdArray),
    Au début, j'ai fais cette solution qui n'a pas donné les bons résultats:
    np.random.seed(0)
    A=np.random.randint(0,100,[10,5])
    A
    for j in range(A.shape[1]):
    moyenne=np.mean(A[:,j]);print(moyenne)
    ecart=np.std(A[:,j]); print(ecart)
    for i in range(A.shape[0]):
    A[i,j]=(A[i,j]-moyenne)/ecart
    Par contre et lorsque je mets le résultat dans une autre variable B, ca fonctionne correctement. Voiçi la solution est:
    B=np.zeros((10,5))
    for j in range(A.shape[1]):
    moyenne=np.mean(A[:,j])
    ecart=np.std(A[:,j])
    for i in range(A.shape[0]):
    B[i,j]=(A[i,j]-moyenne)/ecart
    B
    La question est: pourquoi le changement sur les cases de la matrice A ne se faitent pas correctement, et pourquoi la necessité d'utiliser un tableau intermediaire B,
    Les NdArray sont mutables n'est ce pas?
    et merci bcp d'avance.

    • @MachineLearnia
      @MachineLearnia  Před 4 lety +1

      Bonjour ! Tres bonne question et voici la réponse :
      Votre code ne contient pas d'erreur, c'est simplement que le tableau A a été initialisé pour etre de dtype = int.
      Voila pourquoi si vous effectué des calculs sur A, alors les résultats sont stocké sur la mémoire int
      Votre standardisation a donc bien fonctionné, mais les résultats sont arrondit pour etre contenu dans la mémoire dédiée au tableau A.
      A l'inverse, le tableau B est un tableau de dtype float, (quand on utilise np.zeros() cela nous donnes des float)
      Voila pourquoi vous obtenez les résultats avec décimales.
      Pour corriger tout cela en utilisant seulement le tableau A, vous pouvez faire la chose suivante :
      np.random.seed(0)
      A=np.random.randint(0,100,[10,5]).astype(np.float32) # voici la seule ligne que j'ai changé dans votre code
      print(A)
      for j in range(A.shape[1]):
      moyenne=np.mean(A[:,j]);print(moyenne)
      ecart=np.std(A[:,j]); print(ecart)
      for i in range(A.shape[0]):
      A[i,j]=((A[i,j]-moyenne)/ecart)
      print(A)
      Je vous invite a voir les videos sur Pandas et Sklearn, elles seront également utiles :)
      A bientôt et je reste disponible pour toute question ! :)

    • @kaistaboubi9146
      @kaistaboubi9146 Před 4 lety

      @@MachineLearnia Bravooooooooooooo, et merci

  • @leodrouin3044
    @leodrouin3044 Před 4 lety +3

    Bonjour Guillaume,
    J'ai une petite question sur la manière de profiter au mieux de ton travail. Tu penses qu'il est plus intéressant de suivre cette série, puis ta série machine learning, de faire l'inverse, ou de suivre les deux en parallèles?
    Et sinon merci pour ce que tu fais c'est super ;-)

    • @MachineLearnia
      @MachineLearnia  Před 4 lety +5

      Tres bonne question. Je pense qu'il est mieux de regarder cette série. Je vais faire une autre série sur les bases mathématiques des algorithmes a l'avenir qui remplacera la série ML que j'avais commencé par le passé

  • @Francois92
    @Francois92 Před 2 lety

    J'avais résolu l'exercice de standardisation avec 2 boucles for, là je vois qu'avec le broadcasting 1 seule ligne suffit. Bon j'ai pas très bien compris la notion de reshape je vais approfondir ! Merci pour tes vidéo et pour les exercices et aussi l'essentiel à retenir.

    • @MachineLearnia
      @MachineLearnia  Před 2 lety

      Bien joué.
      reshape c'est juste pour redimensionner un tableau. Et parfois c'est important de bien préciser que les dimensions d'un tableau sont (100, 1) au lieu de (100, ).
      Ca confirme qu'il y a 2 dimensions sur le tableau et qu'il ne s'agit pas simplement d'une chaine de valeur.

  • @pierremonroux9859
    @pierremonroux9859 Před 4 lety

    Super vidéo claire et intéressante. Serait il possible que tu donnes accès en description à la fiche bilan.

    • @MachineLearnia
      @MachineLearnia  Před 4 lety

      Oui je vais tenter de la retrouver dans mes dossiers

  • @cheikhaziz
    @cheikhaziz Před rokem

    Like it🥰

  • @noreddinektn9414
    @noreddinektn9414 Před rokem

    bonjour guillaume pouvez vous nous faire une vidéo sur sklearn.decomposition et différents algorithme comme ica,pca ..ect merci

  • @manu_n_attend_plus
    @manu_n_attend_plus Před 3 lety

    Travail vraiment incroyable ! Bravo et merci !
    J'ai du mal à comprendre les tableaux avec la shape suivante : (x,). C'est un tableau à 1 dimension ?
    Pourtant le tableau : A = np.array([1,2,3]) qui a une shape de (3,) devrait être de dimension 3 non ?

    • @MachineLearnia
      @MachineLearnia  Před 3 lety +1

      Non c'est bien un tableau a 1 dimension, il s'agit d'un vecteur qui comprend 3 valeurs.

  • @alaincharbonneau3622
    @alaincharbonneau3622 Před 2 lety

    Bonjour,
    Bravo pour ces vidéos, qui vont au coeur du sujet. J'ai une question concernant la syntaxe des méthodes, manipulation numpy . Dans votre résumé, par exemple, vous employez A.concatenate (axis) au lieu de np.concatenate ((A,B)). Je ne comprends pas comment la première forme fonctionne. Aussi, dans les méthodes, quelle différence y-a-t-il entre, par exemple, A.mean(axis=0) vs np.mean (A,axis=0). Merci

    • @MachineLearnia
      @MachineLearnia  Před 2 lety

      Bonne question, c'est juste une redondance dans la librairie de Numpy, Vous pouvez parfois trouver des fonctions : np.mean() et des méthodes : A.mean() que l'on applique directement sur l'objet en question. Le résultat est le meme, ne vous prenez pas la tete ^^

  • @soufiane_elbk
    @soufiane_elbk Před rokem

    Done

  • @abdoubrk4814
    @abdoubrk4814 Před 2 lety

    je me demande si la normalisation n'influencera pas les resultas et notre modele puisqu'on a changer les donnes(est ce qu'on n'arrivera par exemple a predire la bonne valeur de y avec notre le model obtenu apres le feature scaling etant donne que notre nouveau model s'est base sur des donnees differentes que celles d'origine )

    • @MachineLearnia
      @MachineLearnia  Před 2 lety

      La normalisation facilite la convergence des algorithmes d'apprentissage statistiques, Mais bien sur si vous normaliser les données d'apprentissage, il faut aussi normaliser les données futures ! J'en parle plus en détails dans la suite de cette série.

  • @sbdz-vs2mb
    @sbdz-vs2mb Před měsícem

    Hello,
    Tout d'abord Merci !
    Est ce que vous avez des conseils pour apprendre les mathématiques pour bien maîtriser l'ia à partager ?

  • @rubendanan674
    @rubendanan674 Před 2 lety

    Bonjour Guillaume, je ne comprends pas pourquoi la technique du broadcasting marche dans notre exercice alors que l'on a deux tableaux de dimensions respectives (10,5) et (5,1) qui ne sont donc pas superposables et on ne peut les étendre non plus car le nombre de lignes est différent (10=!5).
    Merci pour ces vidéos !

  • @boawendneerecasimirzongo5662

    Bonjour Monsieur comment vous allez? Vraiment je ne sais pas par quelle langue utiliser pour vous remercier pour vos formations .....c'est du woooooooooooooooooooooooh .Je sollicilice une video sur les conceptes de la reconnaissance vocale

  • @florentwinamou6650
    @florentwinamou6650 Před 3 lety

    honnêtement celui qui suit cette chaine et ne comprend rien ici, je ne sais pas ou il comprendra encore !!

  • @babyssbabyss5958
    @babyssbabyss5958 Před 2 lety

    bonjour,
    Pour le broadcasting Numpy le gère tout seule ou il faut le faire a la main chaque fois et tout revérifier ?

    • @MachineLearnia
      @MachineLearnia  Před 2 lety

      je vous conseille de toujours vérifier vos fonctions de toute facon si vous voulez devenir un professionel, on appelle ca faire du unit testing.

  • @gregoiremenard3863
    @gregoiremenard3863 Před 4 lety +1

    bonjour, merci pour les videos de qualité.
    la valeur A.mean(axis=0) est de type ndarray et de dimension (5, ) comment se fait-il que numpy arrive a faire un broadcasting pour faire le calcul de normalisation ? il ne devrait pas y avoir le meme probleme que dans la video ?

    • @MachineLearnia
      @MachineLearnia  Před 4 lety

      Bonjour et merci beaucoup. A est de dimension (10, 5) et A.mean() est de dim (5,). En assemblant ces deux tableaux, c'est le nombre de lignes qui est étendu. Donc le résultat est (10, 5). Je sais que ce n'est pas très facile a visualiser. Vous pouvez écrire vos deux tableaux, et vous comprendrez que l'assemblage s'effectue sans problème.

  • @donellessame9194
    @donellessame9194 Před rokem

    tu pourrait faire une vidéo sur la convolution stp.

  • @cyrilww3750
    @cyrilww3750 Před 3 lety

    Hello ! Great vid again !!
    J'ai eu un souci avec Numpy : ayant tenté l'exo de standardisation d'une matrice avant d'en savoir plus sur le broadcast, j'ai fait une boucle (shame on me):
    Voici le résultat pour B :
    C'est agréable à regarder mais pas bon du tout ! ^^
    En remettant l'init de B à np.zeros(A.shape), j'obtiens la bonne matrice. Pourtant elle est totalement écrasée pendant la bouble... Une idée du souci ?

    • @MachineLearnia
      @MachineLearnia  Před 3 lety

      Désolé je ne vois pas de résultat pour B dans ton commentaire (il a du y avoir un probleme de copier coller entre ton code et le commentaire youtube ahah)

  • @jipy3220
    @jipy3220 Před 3 lety

    Bonjour,
    Pourquoi n'obtient t - on pas exactement 0 pour en moyenne pour les colonnes standardisées?
    Tes vidéos sont top!!

    • @MachineLearnia
      @MachineLearnia  Před 3 lety +1

      Bonne question ! C'est lié a la "précision" des calculs : mathématiquement ca devrait donner 0, mais les nombres stockés sur la mémoire de votre ordinateur (avec le dtype) ont une "résolution" limité (8 octects, 16 octets, 32, etc.) donc il arrive que vous n'obteniez pas exactement 0 au final

    • @jipy3220
      @jipy3220 Před 3 lety

      @@MachineLearnia merci!

  • @aymenlazem2062
    @aymenlazem2062 Před 4 lety +2

    Merci infiniment cher Guillaume que dieu vous bénisse, Es possible de nous prévoir des exercices de petit scripte qui nous permet de comparais la génération des Axis 0 aléatoire et sélectionner la génération des Axis supérieur par rapport des autres lignes pour dessiné des graphe des nœuds dynamiques qui changes en fonctions des Axis 1 et merci beaucoup cher Guillaume

    • @MachineLearnia
      @MachineLearnia  Před 4 lety +1

      Merci Beaucoup ! :) Euuh.. pour une fois je ne suis pas sur d'avoir bien compris votre requête ?

    • @aymenlazem2062
      @aymenlazem2062 Před 4 lety

      @@MachineLearnia bon d'accord je suis vraiment désolé cher Guillaume , mon but c'est de créer un graphe pour des matrice qui ont des liaison aléatoire qui change de valeur aléatoirement et suit a ce changement les matrice la liaison ij entre les nœud change de liaison dynamiquement au cours du temps en fin j’espère que vous m'avez compris cher Guillaume et merci infiniment

    • @MachineLearnia
      @MachineLearnia  Před 4 lety +1

      @@aymenlazem2062 Je crois que je commence a comprendre. C'est pour faire de la programmation linéaire (optimisation) ?

    • @aymenlazem2062
      @aymenlazem2062 Před 4 lety

      @@MachineLearnia oui exactement merci infiniment

    • @MachineLearnia
      @MachineLearnia  Před 4 lety +1

      @@aymenlazem2062 Ah d'accord je comprends bien désormais ! :) Je n'ai pas prévu de montrer ceci dans la série Python, mais je compte faire de la programmation linéaire sur ma chaîne CZcams, je garderai votre requête en tete !

  • @romainmartin2280
    @romainmartin2280 Před 4 lety

    Bonjour,
    Merci pour vos videos. Je voudrais savoir s'il est possible de faire du broadcasting avec des tableaux qui n'ont pas la meme dimension. Je souhaite additionner 2images et j'ai l erreur classique "cannot broadcast together with shape (251,251,4) et (64,64)"
    Est ce la méthode reshape peut m'aider? Dans l'idéal je prefererai que mon image finale ait une taille de 64,64 si c'est possible.
    Merci beaucoup :)

    • @MachineLearnia
      @MachineLearnia  Před 4 lety

      Bonjour. Oui le broadcasting fonctionne sur les tableaux de dimensions inégale comme on a pu le voir : en assant de 1D a 2D. Par exemple :
      A = np.zeros(10,)
      B = np.ones((2, 10))
      A+B # est de shape (2,10)
      Mais dans votre cas ca ne va pas etre le nombre de dimensions le probleme, mais la regle du (1) ou des dimensions égales qui ne va pas etre respectée. (entre le 251 et le 64)

    • @romainmartin2280
      @romainmartin2280 Před 4 lety

      Merci pour cette réponse rapide j ai pu résoudre mon problème :)

  • @ahmedsyed671
    @ahmedsyed671 Před 3 lety

    à 11:21 quelquun sais quelle est la music de fond ?

  • @ggizi6313
    @ggizi6313 Před 4 lety

    bon avec le broadcasting ça marche bien !
    j'ai ecrit une petite expression qui simplifie peut etre le probleme de broadcasting selon moi :p
    (n,1) != (n,) = (1,n) !
    il faut savoir quand on doit travailler avec un vecteur ligne ou colone !

    • @MachineLearnia
      @MachineLearnia  Před 4 lety +1

      Attention ! J'ai peut-etre mal expliqué la notion de dimension (n,) dans la vidéo.
      Un tableau a dimenion (n, ) ne contient que 1 dimension, donc on ne peut pas dire que c'est "égual" a un tableau (1, n), puisque ce deuxième tableau a 2 dimensions.
      Par contre le broadcasting va fonctionner comme tu l'as imaginé :)
      Bien joué ;)

    • @ggizi6313
      @ggizi6313 Před 4 lety

      @@MachineLearnia oui j'ai compris merci :) le plus important c'est qu'il faut toujours vérifier les dimensions d'un tableau :D

  • @noel9335
    @noel9335 Před 4 lety +1

    Donc d'après cette vidéo : faut-il comprendre que la méthode reshape() corrige un bug de numpy ?
    A+ ;)

    • @MachineLearnia
      @MachineLearnia  Před 4 lety

      Le broadcasting que je décris n'est pas un "bug" a proprement parler. Mais en effet, il est indispensable de bien dimensionner nos matrices avec reshape pour éviter d'avoir un broadcasting indésirable

    • @noel9335
      @noel9335 Před 4 lety +1

      No response?

    • @MachineLearnia
      @MachineLearnia  Před 4 lety

      @@noel9335 Je vous ai écrit une réponse, vous ne pouvez pas la lire ?

  • @redabenyoub7734
    @redabenyoub7734 Před 3 lety

    Hi, merci encore une fois pour votre travail , cependant j'ai bien compris que le BroadCasting sert à simplifier les calculs de type vecteur + vecteur, par contre comme vous l'aviez préciser des fois il est dangereux de faire ainsi car on frôle l'erreur, j'aimerai savoir quand est-ce qu'il ne faut pas l'utiliser et passer par reshape(()) , merci!

    • @MachineLearnia
      @MachineLearnia  Před 3 lety +1

      Il n'y a pas de cas particulier que je puisse vous fournir comme ca, mais pour savoir quand il faut "redimensionner" vos tableaux, il faut écrire sur papier le calcul matricielle que vous cherchez a effectuer. Vous verrez bien s'il y a un "pépin" ou non a ce moment la.

    • @redabenyoub7734
      @redabenyoub7734 Před 3 lety

      @@MachineLearnia ah d'accord je comprend mieux, Merci encore une fois.

  • @lilianenyinawineza7707

    Y -A -IL une différence entre un tableau numpy, un objet ndarray et une matrice ?

    • @MachineLearnia
      @MachineLearnia  Před 3 lety

      un tableau numpy c'est un objet ndarray. Une matrice c'est différent (Avec numpy on peut faire du calcul matriciel, c'est a dire considérer nos tableaux ndarray comme des matrices, mais attention je ne dirais pas qu'un tableau numpy c'est un matrice.)

  • @madiounimohsen6956
    @madiounimohsen6956 Před 3 lety

    Bonsoir Guillaume
    j'ai essayer de travailler l'exercice et voici ma réponse
    N=np.zeros((A.shape[0],A.shape[1])
    for i in range (A.shape[1]) :
    N[:,i]=(A[:,i]-A[:,i].mean())/A[:,i].std()
    N
    elle donne les meme resultats peut etre en terme de complexité algo et plus élevée .

    • @MachineLearnia
      @MachineLearnia  Před 3 lety

      En effet c'est un bonne réponse, mais vous gagnerez en temps, en efficacité et en simplicité si vous adoptez la technique de "Broadcasting" de Numpy. Dans tous les cas, bravo d'avoir résolu l'exercice !

  • @seyebabacar9539
    @seyebabacar9539 Před 3 lety

    XD je sais pas pour quoi je suis compliqué
    pour le meme resultat j'ai fais autrement lol
    J= np.zeros(A.shape)
    for i in range (A.shape[1]):
    J[:,i] = (A[:,i]-A[:,i].mean())/A[:,i].std()
    Merci énormément Guillaume 🙏
    C'est pour quand pour les video de Deep Learning ?

    • @MachineLearnia
      @MachineLearnia  Před 3 lety +1

      Le plus important c'est d'avoir essayé, bravo ! (moi aussi il m'arrive de faire trop compliqué ^^)
      J'ai finit le tournage et j'ai fait environ 50% du montage de la 1ere video, il reste encore un peu de travail, en attendant tu peux voir les videos de Tipeee :)

  • @SimonLiegeoisOfficiel

    Salut, très intéressant ! As-tu un paypal ou utip pour te remercier ?
    Merci !

  • @ayoubrazouk630
    @ayoubrazouk630 Před 2 lety +1

    Merci bcp Guillaume pour votre efforts et votre temps ,cependant j'ai utiliser le code suivant pour résoudre l'exercice mais il ne donne pas la meme résultat si vous pouvez m'aider a comprendre l'erreur que j'ai commis merci infiniment :
    moyenne=a.mean(axis=0)
    ecartype=a.std(axis=0)
    for i in range(0,a.shape[0]):
    for k in range(0,a.shape[1]):
    a[i,k]=(a[i,k]-moyenne[k])/ecartype[k]

  • @tmamadousalioubah7771
    @tmamadousalioubah7771 Před měsícem

    S'il te plaît mon boss fais moi des cours complets sur data anylyst et tableau de bord avec python,

  • @benoit2489
    @benoit2489 Před 3 lety

    Merci pour ces vidéos, je les dévore !! Par contre je n'ai pas vraiment compris l'intérêt du broadcasting. A quoi ça sert concrètement ?

    • @MachineLearnia
      @MachineLearnia  Před 3 lety +1

      Ca sert a simplifier et accelerer les calculs de tableaux.
      ex : au lieu d'écrire (1, 1, 1, 1, 1) + (a, b, c, d, e)
      On peut écrire 1 + (1, b, c, d, e)

    • @benoit2489
      @benoit2489 Před 3 lety

      @@MachineLearnia Merci !!

  • @guillaume8437
    @guillaume8437 Před 4 lety

    Merci pour cette 13eme video. En revanche, vu que le compilateur réplique soit les lignes, soit les colonnes, (soit les 2 pour un scalaire), pourquoi il n'aime pas si je mets
    np.random.seed(0)
    A=np.random.randint(0,10,[2,4])
    B=np.ones((2,2))
    print(A)
    print(B)
    print(A+B)
    ? Il ne devrait pas répliquer le tableau 2x2 afin que ca fasse un tableau 2x4? Ceci dit, en C où on doit déclarer toutes nos variables, on ne peut pas avoir toutes ces fantaisies et de toutes les facons, ce n'est pas très propre en termes de codage.
    Sympa à la fin la musique pour histoire à raconter pour les petits enfants ;)

    • @MachineLearnia
      @MachineLearnia  Před 4 lety +1

      La dimension 1 de A et de B est égale (2 et 2) donc c'est ok
      En revanche la dimension 2 de A et B n'est pas égale (2 et 4) donc ca vous donne une erreur (pour rappel : seul les dimensions égales a 1 peuvent être étendues, c'est le broadcasting)

    • @guillaume8437
      @guillaume8437 Před 4 lety

      @@MachineLearnia "pour rappel : seul les dimensions égales a 1 peuvent être étendues, c'est le broadcasting" Ah OK. Donc si par exemple, je voulais faire sur un tableau [[0 2 4 6],[1 3 5 7]] l'addition de [[1 2],[1 2]] de sorte d'avoir en sortie
      [[1 4 5 8],[2 5 6 9]]...
      Tu confirmes que le broadcasting est indispensable ou si on préfère coder en détails avec des imbrications de for et des redimensionnements, on peut procéder dans cette voie plus complexe?

    • @MachineLearnia
      @MachineLearnia  Před 4 lety +1

      @@guillaume8437 Le broadcasting n'est pas indispensable, tu peux faire tout avec des boucles for. Mais l'intéret de numpy est justement d'utiliser les opération de vectorisation, car c'est beuacoup plus rapide qu'un boucle for (je rappelle que Python est un langage tres lent)

    • @guillaume8437
      @guillaume8437 Před 4 lety

      @@MachineLearnia effectivement, il est vraiment très lent. Dans les premières vidéos tu avais évoqué un temps d'exécution ou de compilation de qqch comme 6 ou 7 secondes. C'est énorme!
      Justement le problème des librairies c'est que l'exécution du code implique tout ce qui est programmé dans ces librairies et sur les choses essentielles, c'est mal fichu. Par exemple (désolé de sortir du sujet principal), sur Arduino, tu peux changer la valeur d'une IO en utilisant leur fonction simple digitalWrite mais elle consomme une quantité de cycles d'horloge processeur impressionnante alors que changer cette IO de la façon la plus rudimentaire (en écrivant directement dans les registres) ne consomme pas plus de 2 cycles d'horloge. L'idée intéressante des librairies est de simplifier ce qui requiérerait des heures de codage pour des choses complexes.
      Merci en tout cas pour ton aide et ta réactivité!

    • @MachineLearnia
      @MachineLearnia  Před 4 lety

      Oui, mais Arduino est un micro-controlleur, c'est son but d'etre ultra rapide ! Python est un langage de laboratoire, pour pouvoir coder tres rapidement des programmes complexes qui pourraient prendre 10x plus de temps a coder en C++. Ensuite, certes la machine fonctionne plus lentement, mais ca n'est pas grave, car nous on fait du travail a coté pendant ce temps. C'est la raison pour laquelle python a explosé depuis 2012.

  • @kodjoedemagossou2237
    @kodjoedemagossou2237 Před 3 lety

    Merci beaucoup pour la vidéo. Je voudrais savoir quand est-ce qu'on utilise A.mean() et quand est-ce qu'on utilise np.mean(A)? Merci

  • @jean-baptisteriou5555
    @jean-baptisteriou5555 Před 2 lety

    Bon eh bien forcément, je me suis lancé dans la double boucle for. Quand on voit la solution avec le broadcasting, on se dit que c'est sympa quand même 😅

  • @joelkouadio4613
    @joelkouadio4613 Před 4 lety

    Merci pour tes vidéos. C'est extrêmement facile d'apprendre Python grâce à ton site.
    Concernant l'exercice de la vidéo 12, voici ce que j'ai écrit. Mais j'obtiens des arrondis à 0 chiffres (par exemple -1.55 = -1 ; 0.65659=0; 1.666=1). Pourriez-vous m'indiquer comment je peux avoir le même résultat que vous en modifiant le format des nombres dans le calcul ?
    np.random.seed(0)
    A=np.random.randint(0,100,[10,5])
    print(A)
    mA=A.mean(axis=0)
    sA=A.std(axis=0)
    print('--------------------')
    print(mA,'*',mA.shape)
    print('--------------------')
    print(sA,'*',sA.shape)
    print('--------------------')
    print(A.shape[1])
    for i in range(A.shape[1]):
    for j in range(A.shape[0]):
    A[j,i]=(A[j,i]-mA[i])/sA[i]
    A

    • @MachineLearnia
      @MachineLearnia  Před 4 lety +1

      Merci beaucoup :)
      Pour votre code, il faut écrire cela :
      A=np.random.randint(0,100,[10,5]).astype(np.float)

    • @joelkouadio4613
      @joelkouadio4613 Před 4 lety

      @@MachineLearnia Merci beaucoup. Ça marche très bien.

  • @ggizi6313
    @ggizi6313 Před 4 lety

    bonjour
    merci que vous n'est pas dérangé de lire tout mon commentaire voila mon 'prochain' commentaire que vous l'attend ;D
    alors comme a chaque fois j'ai essayé d'ecrire mon propre code :
    np.random.seed(0)
    A = np.random.randint(0,100,[10,5])
    m= A.mean(axis=0)
    m
    array([44.5, 47. , 60.5, 45.7, 64.5])
    e= A.std(axis=0)
    e
    array([22.66384786, 22.28003591, 26.5678377 , 29.36341261, 23.2432786 ])
    à ce stade m et e sont des tableaux de dimention (5,) alors pour acceder au different element j'ai ponsé à la boucle for !
    for i in range (10):
    for j in range (5):
    A[i,j]= (A[i,j]-m[j])/e[j]

    A

    array([[ 0, 0, 0, 0, 0],
    [-1, 1, -1, 0, 0],
    [ 1, 1, 1, -1, 0],
    [ 0, 0, 0, 0, 1],
    [ 1, 0, -1, 1, 0],
    [-1, -1, 0, 0, 0],
    [ 0, 0, 0, 1, 1],
    [ 0, 0, -1, 0, -2],
    [ 0, 0, 0, -1, 0],
    [ 0, 0, 0, 0, -1]])
    mais ça marche pas ! je ponse que la boucle for accede aux bon elements non !
    hhhh je suis entrain d'ecrire ce commentaire précisement quand j'ai ecrit (bon elements) et bah j'ai posé la question : est ce que ce sont les bon elements ? :D et j'ai remarqué ma faute :D c'est que je doit garder les valeurs du taleau initiale A et non pas les changer a chaque fois dans la boucle for :/ alors j'ai crée un tableau D rempli des zeros et le remplcé dans l'expression et ça marche bien maintenant :D
    for i in range (10):
    for j in range (5):
    D[i,j]= (A[i,j]-m[j])/e[j]

    D

    array([[-0.02206157, 0. , 0.13173823, 0.72539252, 0.10755798],
    [-1.56637126, 1.61579632, -1.48676006, -0.33034307, 0.96802178],
    [ 1.12513992, 1.84021247, 1.03508612, -1.14768676, -0.27965074],
    [ 0.90452425, -0.35906585, 0.99744662, 0.0102168 , 1.01104497],
    [ 1.6104944 , -0.44883231, -1.33620208, 1.0659524 , 0.32267393],
    [-1.56637126, -1.21184724, 0.73397016, 0.7935045 , 0.62383626],
    [ 0.11030784, 0.76301493, 0.80924915, 1.81518411, 1.01104497],
    [ 0.1985541 , -0.80789816, -1.56203905, -0.90929485, -2.17267111],
    [-0.24267724, -0.67324847, 0.16937773, -1.24985473, -0.32267393],
    [-0.55153918, -0.7181317 , 0.50813319, -0.77307091, -1.26918412]])
    hhhh bon je pense que je doit simplifier les choses et non pas les compliquer :D

    • @MachineLearnia
      @MachineLearnia  Před 4 lety +1

      les choses viennent avec la pratique. ;)
      Si vous rencontrez des problèmes, vous pouvez vous rendre sur le discord ! :)

  • @soubinan
    @soubinan Před 4 lety +1

    On ne peut pas aimer plusieurs fois une même vidéo (à la Medium) malheureusement :)

    • @MachineLearnia
      @MachineLearnia  Před 4 lety +1

      Ahah merci ! :) C'est pas tres grave, vous pouvez la partager et vos amis l'aimeront pour vous également ! C'est encore MIEUX ! :D

  • @user-tp9en1gi7j
    @user-tp9en1gi7j Před rokem

    je viens de me lancer dans quelque chose de trés interessant, prendre des photo de personne flou et de les eclaircir pour voir le visage

    • @user-tp9en1gi7j
      @user-tp9en1gi7j Před rokem

      coool non, imagine qu'il s'agit d'un voleur ma filmé par les camera de surveillance 😂😂

  • @sohaibsoussi9042
    @sohaibsoussi9042 Před 2 lety

    sinon ça c'est acceptable :
    moy = H.mean(axis=0,dtype=np.float64)
    ecartType = H.std(axis=0,dtype=np.float64)
    for i in range(0,10):
    for j in range(0,5):
    H[i,j]=(H[i,j]-moy[j])/ecartType[j]
    H
    j'ai aussi remarquer la non presence des nbr apres la virgule 🤷‍

    • @MachineLearnia
      @MachineLearnia  Před 2 lety +1

      Oui c'est possible, mais vous ne tirez pas avantage de la vectorisation en écrivant cela (ca ralentira beaucoup votre code a l'avenir sur de gros datasets)

    • @sohaibsoussi9042
      @sohaibsoussi9042 Před 2 lety

      @@MachineLearnia Merci bcp

  • @jbb332
    @jbb332 Před 2 lety

    def z_score(x):
    x1 = (x-np.mean(x, axis=0))/np.std(x, axis=0)
    return x1

  • @Alpha-zf1tw
    @Alpha-zf1tw Před 3 lety

    Challenge accepted : 13/30

  • @epsiloc9599
    @epsiloc9599 Před 4 lety

    J'ai du mal avec les formules alors je préfère écrire Les Régles du Broadcasting qui marchent comme suit:
    1). Les tableaux A et B ont les mêmes dimensions.
    2). Les tableaux A et B n'ont pas le même nombre de ligne, mais un des tableaux a UNE ligne.
    3). Les tableaux A et B n'ont pas le même nombre de colonne, mais un des tableaux a UNE colonne.
    4). Les tableaux A et B n'ont pas le même nombre de ligne et de colonne : On applique les règles 2) et 3)
    Enfin voilà quoi :)

  • @m.ibrahim128
    @m.ibrahim128 Před 3 lety

    super acteur hhhhhhhhh

  • @hermesingenui2653
    @hermesingenui2653 Před 3 lety

    blablabla python python python :)

  • @tcgvsocg1458
    @tcgvsocg1458 Před 3 lety

    Aie aie aie il faut attendre la 13 video pour que cela sameliore...pas trop de bruit de bouche ça parle pas trop pour rien dire cest bien...faut peut etre refaire les 13 premier fmvideo ou du moins les regarder avant de les poster...
    Alors par contre quand tu montre la manier oop orienter objet si cest pour debutant tu dois leur dire pourquoi tu ne met rien en argument sinon il von pas savoir...14.00

  • @el-mehdilahlou3798
    @el-mehdilahlou3798 Před 2 lety

    bonjours monsieur quelle est mon erreur de ma proposition de la correction d'exercice
    import numpy as np
    np.random.seed(0)
    A=np.random.randint(0,100,[10,5])
    A.mean(axis=0)[0]
    for j in range(5):
    a=A.mean(axis=0)[j]
    b=A.std(axis=0)[j]
    for i in range(10):
    A[i,j]=(A[i,j]-a)/b
    et merci d'avance

  • @yahiaouizakaria212
    @yahiaouizakaria212 Před rokem

    bonjour ,
    Meri pour ces vidéos et vraiment vous êtes le meilleur merci.
    j'ai un petit problème avec la solution suivante ( elle n' affiche pas les nombres en type float dans la matrice 😮‍💨😪)
    import numpy as np
    np.random.seed(0)
    A = np.random.randint(0, 100, [10, 5])
    print(A, '
    ')
    moy_cln = A.mean(axis=0)
    print('la moyen de chaque colone =',moy_cln, '
    ')
    A[0:10,0:1] = [i-moy_cln[0] for i in A[0:10,0:1]]
    A[0:10,1:2] = [i-moy_cln[1] for i in A[0:10,1:2]]
    A[0:10,2:3] = [i-moy_cln[2] for i in A[0:10,2:3]]
    A[0:10,3:4] = [i-moy_cln[3] for i in A[0:10,3:4]]
    A[0:10,4:5] = [i-moy_cln[4] for i in A[0:10,4:5]]
    print(A,'
    ')
    ecr_typ = A.std(axis=0)
    print("l'ecare type de chaque colone =",ecr_typ, '
    ')
    A[0:10,0:1] = [i/ecr_typ[0] for i in A[0:10,0:1]]
    A[0:10,1:2] = [i/ecr_typ[1] for i in A[0:10,1:2]]
    A[0:10,2:3] = [i/ecr_typ[2] for i in A[0:10,2:3]]
    A[0:10,3:4] = [i/ecr_typ[3] for i in A[0:10,3:4]]
    A[0:10,4:5] = [i/ecr_typ[4] for i in A[0:10,4:5]]
    print(A,'
    ')
    merci de me répondre.

  • @khalilkhazmi7581
    @khalilkhazmi7581 Před rokem

    # Calculate EXECUTION TIME & COMPARE ;D !!
    import numpy as np
    import time
    np.random.seed(0)
    A = np.random.randint(0,100,[10,5])
    A_stdrz = np.zeros([10,5])
    tps1 = time.time()
    for i in zip(range(A.shape[1])):
    for j in zip(range(A.shape[0])):
    A_stdrz[j,i] = (A[j,i].T-A[:,i].T.mean())/A[:,i].T.std()
    tps2 = time.time()
    temps_execution = tps2 - tps1
    print("temps d'execution est %s" % temps_execution)
    A_stdrz
    # on remarque que ça prends énormément plus de temps quand on utilise directement le calcul matriciel de numpy
    # comme proposé dans la solution de la vidéo
    # from Tunis with Love

  • @Zohranounou
    @Zohranounou Před 6 měsíci

    Merci pour cette vidéo, super qualité comme toujours