SlideShare ist ein Scribd-Unternehmen logo

Warum Python?

T
tharwan

With this slides I tried to convince the theoretical physicists at my university (TU-Ilmenau) to use python instead of matlab, especially for teaching. At it seams it may have worked! Slides are in German.

1 von 37
Downloaden Sie, um offline zu lesen
Scientific Batteries Included




                                Florian Kühnlenz
Gliederung

1.Einleitung

2.Übersicht

3.„Warum Python?“

4.Numeric Stack

5.Bonus: Geschwindigkeit
Thesen



• Pythons numerische Funktionalität entspricht der von MATLAB

• Python lässt sich besser Strukturieren

• Python ist einfacher zu erlernen und zu warten

• Python ist frei Verfügbar
Python - Buzzword-Bingo

•   Dynamisch
•   Interpretiert
•   Interaktiv
•   Introspektiv
•   Exception-based error handling
•   Umfangreiche Standardbibliothek
•   Erweiterbar (C, C++, Fortran, Java … )
Python - Buzzword-Bingo

•   Dynamisch
•   Interpretiert
•   Interaktiv
•   Introspektiv
•   Exception-based error handling
•   Umfangreiche Standardbibliothek
•   Erweiterbar (C, C++, Fortran, Java … )
•   Open Source
Über Python




        “
        bridge the gap
    between C and the shell

Recomendados

Java Streams und Lambdas
Java Streams und LambdasJava Streams und Lambdas
Java Streams und LambdasNane Kratzke
 
Spaß an der Nebenläufigkeit
Spaß an der NebenläufigkeitSpaß an der Nebenläufigkeit
Spaß an der NebenläufigkeitFrank Müller
 
Tendencias 009
Tendencias 009Tendencias 009
Tendencias 009IPAE
 
ndertesat popullore korce *rafaela*
ndertesat popullore korce *rafaela*ndertesat popullore korce *rafaela*
ndertesat popullore korce *rafaela*Vajza Vogel
 
Web Flags - Digital Methods Summer 12
Web Flags - Digital Methods Summer 12Web Flags - Digital Methods Summer 12
Web Flags - Digital Methods Summer 12Sabine Niederer
 

Más contenido relacionado

Destacado (20)

Instrução técnica pm
Instrução técnica pmInstrução técnica pm
Instrução técnica pm
 
Security
SecuritySecurity
Security
 
Каталог СпецЭнерго
Каталог СпецЭнергоКаталог СпецЭнерго
Каталог СпецЭнерго
 
Cartilla
CartillaCartilla
Cartilla
 
Spaun
SpaunSpaun
Spaun
 
Rails goes SOA
Rails goes SOARails goes SOA
Rails goes SOA
 
Cardsplitter
CardsplitterCardsplitter
Cardsplitter
 
Tutorial simulations-elec 380
Tutorial simulations-elec 380Tutorial simulations-elec 380
Tutorial simulations-elec 380
 
Kona LHi
Kona LHiKona LHi
Kona LHi
 
77777777
7777777777777777
77777777
 
77777
7777777777
77777
 
Tchaikovsky
TchaikovskyTchaikovsky
Tchaikovsky
 
Unmanned Aircraft Systems
Unmanned Aircraft SystemsUnmanned Aircraft Systems
Unmanned Aircraft Systems
 
ABUELITO QUERIDO
ABUELITO QUERIDOABUELITO QUERIDO
ABUELITO QUERIDO
 
Pasarela 2014 lista
Pasarela 2014 listaPasarela 2014 lista
Pasarela 2014 lista
 
qwest communications q_q4 04er
qwest communications q_q4 04erqwest communications q_q4 04er
qwest communications q_q4 04er
 
Chanoeka
ChanoekaChanoeka
Chanoeka
 
Principio basicos peluquer+¡a-canina-
 Principio basicos peluquer+¡a-canina- Principio basicos peluquer+¡a-canina-
Principio basicos peluquer+¡a-canina-
 
Esteracing
EsteracingEsteracing
Esteracing
 
47 brand fall 2013 catalog
47 brand fall 2013 catalog47 brand fall 2013 catalog
47 brand fall 2013 catalog
 

Ähnlich wie Warum Python?

Python Mike Müller
Python Mike MüllerPython Mike Müller
Python Mike MüllerAberla
 
Python Installationen für Data Science
Python Installationen für Data SciencePython Installationen für Data Science
Python Installationen für Data ScienceDatamics
 
20160229_ModernApplicationDevelopment_Python_KPatenge
20160229_ModernApplicationDevelopment_Python_KPatenge20160229_ModernApplicationDevelopment_Python_KPatenge
20160229_ModernApplicationDevelopment_Python_KPatengeKarin Patenge
 
Python in Computational Neuroscience & Modular toolkit for Data Processing (MDP)
Python in Computational Neuroscience & Modular toolkit for Data Processing (MDP)Python in Computational Neuroscience & Modular toolkit for Data Processing (MDP)
Python in Computational Neuroscience & Modular toolkit for Data Processing (MDP)nwilbert
 
Perl Renaissance Reloaded
Perl Renaissance ReloadedPerl Renaissance Reloaded
Perl Renaissance ReloadedGregor Goldbach
 
Python crash-kurs
Python crash-kursPython crash-kurs
Python crash-kursklausbremer
 
zmon.io – Not yet another Prometheus Talk
zmon.io – Not yet another Prometheus Talkzmon.io – Not yet another Prometheus Talk
zmon.io – Not yet another Prometheus Talkinovex GmbH
 
Upgrading Puppet CommitterConf Essen 2014
Upgrading Puppet CommitterConf Essen 2014Upgrading Puppet CommitterConf Essen 2014
Upgrading Puppet CommitterConf Essen 2014Martin Alfke
 
GitLab: CI-Pipelines | PHP Usergroup Hamburg 20.03.2018
GitLab: CI-Pipelines | PHP Usergroup Hamburg 20.03.2018GitLab: CI-Pipelines | PHP Usergroup Hamburg 20.03.2018
GitLab: CI-Pipelines | PHP Usergroup Hamburg 20.03.2018Christian Mücke
 
Automation with Ansible
Automation with AnsibleAutomation with Ansible
Automation with AnsibleSusannSgorzaly
 
Back to the future - Plone 5.2 und Python 3 Migration am Beispiel Onkopedia
Back to the future - Plone 5.2 und Python 3 Migration am Beispiel OnkopediaBack to the future - Plone 5.2 und Python 3 Migration am Beispiel Onkopedia
Back to the future - Plone 5.2 und Python 3 Migration am Beispiel OnkopediaAndreas Jung
 
Warum kann man Pi nicht als einen Bruch aufschreiben ?
 Warum kann man Pi nicht als einen Bruch aufschreiben ? Warum kann man Pi nicht als einen Bruch aufschreiben ?
Warum kann man Pi nicht als einen Bruch aufschreiben ?F789GH
 
Python Bootcamp - Grundlagen
Python Bootcamp - GrundlagenPython Bootcamp - Grundlagen
Python Bootcamp - GrundlagenDatamics
 
Slideshare AutoEncoder
Slideshare AutoEncoderSlideshare AutoEncoder
Slideshare AutoEncoderDatamics
 
Domino Statistiken (noch besser) verstehen und nutzen (Teil 2) - 41. DNUG 2014
 Domino Statistiken (noch besser) verstehen und nutzen (Teil 2) - 41. DNUG 2014 Domino Statistiken (noch besser) verstehen und nutzen (Teil 2) - 41. DNUG 2014
Domino Statistiken (noch besser) verstehen und nutzen (Teil 2) - 41. DNUG 2014panagenda
 

Ähnlich wie Warum Python? (20)

Python Mike Müller
Python Mike MüllerPython Mike Müller
Python Mike Müller
 
Python Installationen für Data Science
Python Installationen für Data SciencePython Installationen für Data Science
Python Installationen für Data Science
 
Python Academy
Python AcademyPython Academy
Python Academy
 
20160229_ModernApplicationDevelopment_Python_KPatenge
20160229_ModernApplicationDevelopment_Python_KPatenge20160229_ModernApplicationDevelopment_Python_KPatenge
20160229_ModernApplicationDevelopment_Python_KPatenge
 
Python in Computational Neuroscience & Modular toolkit for Data Processing (MDP)
Python in Computational Neuroscience & Modular toolkit for Data Processing (MDP)Python in Computational Neuroscience & Modular toolkit for Data Processing (MDP)
Python in Computational Neuroscience & Modular toolkit for Data Processing (MDP)
 
Perl Renaissance Reloaded
Perl Renaissance ReloadedPerl Renaissance Reloaded
Perl Renaissance Reloaded
 
Dev + Ops = Go
Dev + Ops = GoDev + Ops = Go
Dev + Ops = Go
 
NRWConf2013_T4CodeGeneration
NRWConf2013_T4CodeGenerationNRWConf2013_T4CodeGeneration
NRWConf2013_T4CodeGeneration
 
Python crash-kurs
Python crash-kursPython crash-kurs
Python crash-kurs
 
JavaScript Performance
JavaScript PerformanceJavaScript Performance
JavaScript Performance
 
zmon.io – Not yet another Prometheus Talk
zmon.io – Not yet another Prometheus Talkzmon.io – Not yet another Prometheus Talk
zmon.io – Not yet another Prometheus Talk
 
Upgrading Puppet CommitterConf Essen 2014
Upgrading Puppet CommitterConf Essen 2014Upgrading Puppet CommitterConf Essen 2014
Upgrading Puppet CommitterConf Essen 2014
 
Debugging und Profiling
Debugging und ProfilingDebugging und Profiling
Debugging und Profiling
 
GitLab: CI-Pipelines | PHP Usergroup Hamburg 20.03.2018
GitLab: CI-Pipelines | PHP Usergroup Hamburg 20.03.2018GitLab: CI-Pipelines | PHP Usergroup Hamburg 20.03.2018
GitLab: CI-Pipelines | PHP Usergroup Hamburg 20.03.2018
 
Automation with Ansible
Automation with AnsibleAutomation with Ansible
Automation with Ansible
 
Back to the future - Plone 5.2 und Python 3 Migration am Beispiel Onkopedia
Back to the future - Plone 5.2 und Python 3 Migration am Beispiel OnkopediaBack to the future - Plone 5.2 und Python 3 Migration am Beispiel Onkopedia
Back to the future - Plone 5.2 und Python 3 Migration am Beispiel Onkopedia
 
Warum kann man Pi nicht als einen Bruch aufschreiben ?
 Warum kann man Pi nicht als einen Bruch aufschreiben ? Warum kann man Pi nicht als einen Bruch aufschreiben ?
Warum kann man Pi nicht als einen Bruch aufschreiben ?
 
Python Bootcamp - Grundlagen
Python Bootcamp - GrundlagenPython Bootcamp - Grundlagen
Python Bootcamp - Grundlagen
 
Slideshare AutoEncoder
Slideshare AutoEncoderSlideshare AutoEncoder
Slideshare AutoEncoder
 
Domino Statistiken (noch besser) verstehen und nutzen (Teil 2) - 41. DNUG 2014
 Domino Statistiken (noch besser) verstehen und nutzen (Teil 2) - 41. DNUG 2014 Domino Statistiken (noch besser) verstehen und nutzen (Teil 2) - 41. DNUG 2014
Domino Statistiken (noch besser) verstehen und nutzen (Teil 2) - 41. DNUG 2014
 

Último

"haben" im Präsens,Präteritum und Perfekt
"haben" im Präsens,Präteritum und Perfekt"haben" im Präsens,Präteritum und Perfekt
"haben" im Präsens,Präteritum und PerfektMaria Vaz König
 
Führerscheinklasse A1_ Führerscheinklassen Und Anforderungen.pdf
Führerscheinklasse A1_ Führerscheinklassen Und Anforderungen.pdfFührerscheinklasse A1_ Führerscheinklassen Und Anforderungen.pdf
Führerscheinklasse A1_ Führerscheinklassen Und Anforderungen.pdfUKSafeMeds
 
Präpositionen mit Genitiv - Arbeitsblatt zur PPt
Präpositionen mit Genitiv - Arbeitsblatt zur PPtPräpositionen mit Genitiv - Arbeitsblatt zur PPt
Präpositionen mit Genitiv - Arbeitsblatt zur PPtMaria Vaz König
 
Präpositionen mit Genitiv - interaktive Power Point
Präpositionen mit Genitiv - interaktive Power PointPräpositionen mit Genitiv - interaktive Power Point
Präpositionen mit Genitiv - interaktive Power PointMaria Vaz König
 
Wie man ein gutes Paper (für das LEGO-Praktikum) schreibt
Wie man ein gutes Paper (für das LEGO-Praktikum) schreibtWie man ein gutes Paper (für das LEGO-Praktikum) schreibt
Wie man ein gutes Paper (für das LEGO-Praktikum) schreibtMathias Magdowski
 
Opfervermeidungsstrategien - Wie kann ich mich schützen? Comic für Kids und T...
Opfervermeidungsstrategien - Wie kann ich mich schützen? Comic für Kids und T...Opfervermeidungsstrategien - Wie kann ich mich schützen? Comic für Kids und T...
Opfervermeidungsstrategien - Wie kann ich mich schützen? Comic für Kids und T...LUCO KIDS® - clever und stark
 

Último (6)

"haben" im Präsens,Präteritum und Perfekt
"haben" im Präsens,Präteritum und Perfekt"haben" im Präsens,Präteritum und Perfekt
"haben" im Präsens,Präteritum und Perfekt
 
Führerscheinklasse A1_ Führerscheinklassen Und Anforderungen.pdf
Führerscheinklasse A1_ Führerscheinklassen Und Anforderungen.pdfFührerscheinklasse A1_ Führerscheinklassen Und Anforderungen.pdf
Führerscheinklasse A1_ Führerscheinklassen Und Anforderungen.pdf
 
Präpositionen mit Genitiv - Arbeitsblatt zur PPt
Präpositionen mit Genitiv - Arbeitsblatt zur PPtPräpositionen mit Genitiv - Arbeitsblatt zur PPt
Präpositionen mit Genitiv - Arbeitsblatt zur PPt
 
Präpositionen mit Genitiv - interaktive Power Point
Präpositionen mit Genitiv - interaktive Power PointPräpositionen mit Genitiv - interaktive Power Point
Präpositionen mit Genitiv - interaktive Power Point
 
Wie man ein gutes Paper (für das LEGO-Praktikum) schreibt
Wie man ein gutes Paper (für das LEGO-Praktikum) schreibtWie man ein gutes Paper (für das LEGO-Praktikum) schreibt
Wie man ein gutes Paper (für das LEGO-Praktikum) schreibt
 
Opfervermeidungsstrategien - Wie kann ich mich schützen? Comic für Kids und T...
Opfervermeidungsstrategien - Wie kann ich mich schützen? Comic für Kids und T...Opfervermeidungsstrategien - Wie kann ich mich schützen? Comic für Kids und T...
Opfervermeidungsstrategien - Wie kann ich mich schützen? Comic für Kids und T...
 

Warum Python?

  • 1. Scientific Batteries Included Florian Kühnlenz
  • 3. Thesen • Pythons numerische Funktionalität entspricht der von MATLAB • Python lässt sich besser Strukturieren • Python ist einfacher zu erlernen und zu warten • Python ist frei Verfügbar
  • 4. Python - Buzzword-Bingo • Dynamisch • Interpretiert • Interaktiv • Introspektiv • Exception-based error handling • Umfangreiche Standardbibliothek • Erweiterbar (C, C++, Fortran, Java … )
  • 5. Python - Buzzword-Bingo • Dynamisch • Interpretiert • Interaktiv • Introspektiv • Exception-based error handling • Umfangreiche Standardbibliothek • Erweiterbar (C, C++, Fortran, Java … ) • Open Source
  • 6. Über Python “ bridge the gap between C and the shell
  • 7. Über Python “ Battery included.
  • 10. hello-world.py >>> [0, 3, 6, 9, 12, 15, 18]
  • 12. Über Python “ If it‘s good enough for Google and NASA (and DLR), it‘s good enough for me, baby.
  • 13. Zahlenspiele Position Sprache 1 Java 2 C 3 C++ 4 PHP 5 C# 6 Objective-C 7 Visual Basic 8 Python 9 Perl 10 JavaScript … 29 MATLAB … 34 Fortran Quelle: http://www.tiobe.com/
  • 14. Warum ist Python so verbreitet? • Google, YouTube, CERN, NASA, DLR, ILM…  “ Der größte Optimierungsschritt ist der von einem nicht funktionierenden Zustand zu einem funktionierendem.
  • 15. Warum ist Python so verbreitet? • Google, YouTube, CERN, NASA, DLR, ILM…  “ Der größte Optimierungsschritt ist der von einem nicht funktionierenden Zustand zu einem funktionierendem.
  • 16. Gibt es produktive Sprachen? Quelle:http://www.connellybarnes.com/documents/language_productivity.pdf
  • 17. Gibt es produktive Sprachen? Quelle:http://www.connellybarnes.com/documents/language_productivity.pdf
  • 18. Gibt es produktive Sprachen? Quelle:http://page.mi.fu-berlin.de/prechelt/Biblio/jccpprt_computer2000.pdf
  • 19. Vorteile MATLAB • optimiert auf Numerik • steile Lernkurve • sehr viele eingebaute mathematische Funktionen • sehr gute Dokumentation • Verbreitung in der wissenschaftlichen Gemeinde
  • 20. Nachteile MATLAB • nicht frei Verfügbar • Sprache nicht sehr ausgefeilt • GUI / Shell verwirrt Anfänger
  • 21. Vorteile C/C++ • schnell • sehr weit verbreitet • Open Source
  • 22. Nachteile C/C++ • sehr flache Lernkurve • optimiert für Systemprogrammierung (C) • Einbinden von Zusatzpaketen aufwendig
  • 23. Vorteile Python • Open Source • One-Click Windows-Installer (sonst Paketverwaltung…) • Optimiert auf Erlernbarkeit, Lesbarkeit und Wartbarkeit • umfangreiche Standardbibliothek • einfache Paketinstallation • Portierbarkeit
  • 24. Nachteile Python • langsam (zumindest manchmal) • Dokumentation könnte besser sein
  • 25. Whitespace C Python
  • 26. Reduziert C Python
  • 27. …und MATLAB MATLAB Python
  • 28. Scientific Stack • Python • NumPy - MATLAB-artige Numerik • SciPy - Sammlung wissenschaftlicher Algorithmen • Matplotlib - Plotting • IPython - verbesserte Python Shell • SymPy, mpi4py, PyCUDA, PyOpenCL, Cython, NumExpr, MayaVi, ShedSkin, Theano, Copperhead… 
  • 29. NumPy + SciPy Demo: IPython und Kreisfit
  • 30. NumPy - gar nicht so viel anders MATLAB NumPy [ 1 2 3; 4 5 6 ] array([[1.,2.,3.], [4.,5.,6.]]) a(end) a[-1] a(2,5) a[1,4] a(end-4:end,:) a[-5:] a.' a.T a' a.H a * b dot(a,b) a .* b a * b y=x y = x.copy() zeros(3,4,5) zeros((3,4,5)) diag(a,0) diag(a,0) a | b logical_or(a,b) bitor(a,b) a | b inv(a) linalg.inv(a) sort(a) sort(a) or a.sort()
  • 31. Thesen • Pythons numerische Funktionalität entspricht der von MATLAB • Python lässt sich besser Strukturieren • Python ist einfacher zu erlernen und zu warten • Python ist frei Verfügbar
  • 32. Bonus
  • 33. In der Ruhe liegt die Kraft? >>> time ./sum >>> time python sum.py 499950000000 499950000000 real 0m0.284s real 0m19.860s user 0m0.279s user 0m19.561s sys 0m0.002s sys 0m0.043s
  • 34. JIT Segen >>> time ./sum >>> time pypy sum.py 499950000000 499950000000 real 0m0.284s real 0m2.515s user 0m0.279s user 0m2.432s sys 0m0.002s sys 0m0.026s
  • 35. JIT Segen >>> time ./sum >>> time pypy sum… 499950000000 499950000000 real 0m0.284s real 0m0.343s user 0m0.279s user 0m0.319s sys 0m0.002s sys 0m0.022s
  • 36. Pythonic-Way >>> time python sum.py 499950000000 real 0m1.402s user 0m1.348s sys 0m0.015s >>> time python sum… 499950000000 real 0m1.101s user 0m1.079s sys 0m0.014s „Nur“ 4x langsamer.
  • 37. NumPy >>> time python sum… 499950000000 real 0m0.294s user 0m0.242s sys 0m0.047s >>> time octave MATLAB sum… x = 4.9995e+11 x = 4.9995e+11 Elapsed time is Elapsed time is 0.2088 seconds. 0.1584 seconds. real 0m1.351s ? user 0m0.380s sys 0m0.107s

Hinweis der Redaktion

  1. 2 Ziele:\n1. Denen die Python noch nicht kennen ein wenig davon zu zeigen und denen die es schon kennen und meinen das es merkwürdig ist zu zeigen das dem nicht so ist\n2. Davon zu überzeugen das Python eine gute Wahl als Programmiersprache für die Studenten ist\n\nIch mag Python aber ich kenne genügend anderen Sprachen (Assembler -> Prolog)\nTrotzdem Heute: Python ist beste Sprache ever!\n\nProgrammieren = Fähigkeit zu schleifen\nWahl der Programmiersprache = Wahl der richtigen Feile\n\n\n\n
  2. \n
  3. \n
  4. Introspektiv - während der Laufzeit Objekte untersuchbar und veränderbar \n
  5. Introspektiv - während der Laufzeit Objekte untersuchbar und veränderbar \n
  6. Introspektiv - während der Laufzeit Objekte untersuchbar und veränderbar \n
  7. Introspektiv - während der Laufzeit Objekte untersuchbar und veränderbar \n
  8. Introspektiv - während der Laufzeit Objekte untersuchbar und veränderbar \n
  9. Introspektiv - während der Laufzeit Objekte untersuchbar und veränderbar \n
  10. Introspektiv - während der Laufzeit Objekte untersuchbar und veränderbar \n
  11. Introspektiv - während der Laufzeit Objekte untersuchbar und veränderbar \n
  12. Die Herkunft einer Sprache gibt gutes Gefühl dafür warum sie so ist wie sie ist\n\nUrsprungsmotto von Guido von Rossum\n
  13. Motto von Python heute\n
  14. \n
  15. \n
  16. \n
  17. ganz kurze Antwort\n
  18. Nutzung von Programmiersprachen außerhalb der Uni… z.B. im Praktikum\n
  19. Etwas längere Antwort.\n\n1. Time is Money (Arbeitszeit)\nMehr Rechenleistung lässt sich immer billiger kaufen\n\n2. Gute Wartbarkeit von Code\n\n3. Zusammenspiel mit Legacy Code\n\nAuf BlueGene /P läuft eine riesen Python DFT Simulation (40k Cores) „Was tun wir um sie aufzuhalten“\n
  20. Etwas längere Antwort.\n\n1. Time is Money (Arbeitszeit)\nMehr Rechenleistung lässt sich immer billiger kaufen\n\n2. Gute Wartbarkeit von Code\n\n3. Zusammenspiel mit Legacy Code\n\nAuf BlueGene /P läuft eine riesen Python DFT Simulation (40k Cores) „Was tun wir um sie aufzuhalten“\n
  21. Etwas längere Antwort.\n\n1. Time is Money (Arbeitszeit)\nMehr Rechenleistung lässt sich immer billiger kaufen\n\n2. Gute Wartbarkeit von Code\n\n3. Zusammenspiel mit Legacy Code\n\nAuf BlueGene /P läuft eine riesen Python DFT Simulation (40k Cores) „Was tun wir um sie aufzuhalten“\n
  22. Etwas längere Antwort.\n\n1. Time is Money (Arbeitszeit)\nMehr Rechenleistung lässt sich immer billiger kaufen\n\n2. Gute Wartbarkeit von Code\n\n3. Zusammenspiel mit Legacy Code\n\nAuf BlueGene /P läuft eine riesen Python DFT Simulation (40k Cores) „Was tun wir um sie aufzuhalten“\n
  23. Etwas längere Antwort.\n\n1. Time is Money (Arbeitszeit)\nMehr Rechenleistung lässt sich immer billiger kaufen\n\n2. Gute Wartbarkeit von Code\n\n3. Zusammenspiel mit Legacy Code\n\nAuf BlueGene /P läuft eine riesen Python DFT Simulation (40k Cores) „Was tun wir um sie aufzuhalten“\n
  24. Etwas längere Antwort.\n\n1. Time is Money (Arbeitszeit)\nMehr Rechenleistung lässt sich immer billiger kaufen\n\n2. Gute Wartbarkeit von Code\n\n3. Zusammenspiel mit Legacy Code\n\nAuf BlueGene /P läuft eine riesen Python DFT Simulation (40k Cores) „Was tun wir um sie aufzuhalten“\n
  25. \n
  26. \n
  27. Script-Sprache verbraucht nur halb so viel Zeit, Code ist halb so lang.\n\nSpeicherverbraucht Script = 2x Compiled\n\nSchlechte Programme kann man in jeder Sprache schreiben\n\nDer unterscheid zwischen Programmierern ist größer als zwischen Sprachen\n\n
  28. nur die Doku von Mathematica ist noch besser weil auf Deutsch ;-)\n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. alle klammern weglassen\n\nMeine Freundin: „Das (Python) verstehe ich aber was bitte soll das (C) sein?\n\n- für einfach Sachen: Python wie Pseudocode\n
  35. man kann sogar noch mehr weglassen\nkann eine Sprache produktiver sein?\n
  36. MATLAB ist auch sehr kompakt (eine Zeile weniger), es fehlt aber die Möglichkeit der Strukturierung\nMATLAB ist etwas auf der PERL Seite, zu kompakt, nicht ausdrucksstark genug.\n\n\n\n
  37. "NumPy and SciPy were created to do numerical and scientific computing in the most natural way with Python, not to be MATLAB® clones."\n\nmatplotlib weil MATLAB Lizenzserver immer down… \n\n\n
  38. IPython:\nipython --pylab\na = [1,2,3]\nx = linspace(0,2*pi,100)\nplot(sin(x))\nxlabel(,x‘)\nylabel(,$\\sin(x)$‘)\nsafefig(,sin.eps‘)\n!open sin.eps\n\nKreisfit… \n
  39. Man muss sich umgewöhnen ABER man muss nix neues lernen.\n\nansätze sind meist etwas anders:\nmatlab: column major\nnumpy: row major\n\nmatlab: sum nur eine dimension --> sum(sum(sum…\nnumpy: sum reduziert auf skalar --> sum(a,axis=0)\n\n…\n
  40. \n
  41. \n
  42. python 70 mal langsamer als C. Das was alle immer gehofft haben. \nBeispiel ist speziell ausgesucht um pythons Langsamkeit zu demonstrieren.\nMit ein paar Varianten die Möglichkeiten Pythons aufzeigen.\n\n
  43. wenn man python code in als funktion in pypy ausführt (mehr optimierung möglich) ==> C speed\n
  44. wenn man python code in als funktion in pypy ausführt (mehr optimierung möglich) ==> C speed\nReine Ausführungszeit der Funktion: 0.28s…\n\nMatlab: 0.5s (hat auch JIT)\nOctave: 146s\n
  45. Auch in Python gibt es mehr als einen Weg. Der _beste_ Weg ist vllt nicht der schnellste.\nObjekte in python schreiben ist sehr straight forward.\nObere Variante ist wohl die am meisten Pythonische Variante.\n\nIn der Praxis eher selten ein Problem 10 Mio Operationen besser mit Numerik Paket. (NumPy 0.14s)\n\n\n
  46. Auch in Python gibt es mehr als einen Weg. Der _beste_ Weg ist vllt nicht der schnellste.\nObjekte in python schreiben ist sehr straight forward.\nObere Variante ist wohl die am meisten Pythonische Variante.\n\nIn der Praxis eher selten ein Problem 10 Mio Operationen besser mit Numerik Paket. (NumPy 0.14s)\n\n\n