Bartosz Teleńczuk

Bartosz Teleńczuk

Scientific Tools for Python Bartosz Teleńczuk Advanced Scientific Programming in Python Warsaw 2010 Mittwoch, 10. Februar 2010 Python was rapidly adopted • web development • database programming • prototyping • scripting language • game programming • GUIs Mittwoch, 10. Februar 2010 What about science? Mittwoch, 10. Februar 2010 ...but WHY??! • complex data types • numerical algorithms (linear algebra, etc...) • plotting • user-contributed functions • good documentation • full IDE Mittwoch, 10. Februar 2010 Number of publications Matlab Python 20.000 15.000 10.000 5.000 0 1990- 1995- 2000- 2005-2009 Source: Google Scholar Mittwoch, 10. Februar 2010 Python Timeline Python summer- school Great Numeric unification: released Python NumPy First release 2.0 of Python Python The Meaning 2.4 of Life Python 1.0 Python 3.0 ... 1982 1990 1992 1994 1996 1998 2000 2002 2004 2006 2008 2010 Mittwoch, 10. Februar 2010 Big BOOM!!!!! Numerical Optimization Symbolic mathematics 3D Scientific Visualization Data Mining Mittwoch, 10. Februar 2010 What is NumPy? “What really makes Python excel as a language for scientists and engineers is the NumPy extension.” Travis Oliphant • efficient implementation of an array object • I/O function • basic statistics, linear algebra, ... Mittwoch, 10. Februar 2010 NumPy Examples interactive session Mittwoch, 10. Februar 2010 Again M...bⓇ • complex data types ➔ NumPy • numerical algorithms • plotting • user-contributed functions • good documentation • full IDE Mittwoch, 10. Februar 2010 scipy.stats statistical functions scipy.integrate integration routines scipy.optimize optimization tools scipy.signal signal processing tools scipy.sparse sparse matrices scipy.cluster clustering algorithms Mittwoch, 10. Februar 2010 Again M...bⓇ • complex data types ➔ NumPy • numerical algorithms ➔ SciPy, ... • plotting • user-contributed functions • good documentation • full IDE Mittwoch, 10. Februar 2010 Mittwoch, 10. Februar 2010 Matplotlib examples Mittwoch, 10. Februar 2010 MayaVI Contributed by Eillif Miller Mittwoch, 10. Februar 2010 Again M...bⓇ • complex data types ➔ NumPy • numerical algorithms ➔ SciPy, ... • plotting ➔ matplotlib, ... • user-contributed functions • good documentation • full IDE Mittwoch, 10. Februar 2010 SciKits Mittwoch, 10. Februar 2010 Docs Mittwoch, 10. Februar 2010 Again M...bⓇ • complex data types ➔ NumPy • numerical algorithms ➔ SciPy, ... • plotting ➔ matplotlib, ... • user-contributed functions • good documentation • full IDE Mittwoch, 10. Februar 2010 Serialization Mittwoch, 10. Februar 2010 Scientific data • large data sets • inhomogenous • meta-data • searchable • platform independent • collaborative Mittwoch, 10. Februar 2010 State of the art • closed formats • set of unrelated and badly-labelled files • metadata stored separately (if at all) • data repositories closed to outsiders Mittwoch, 10. Februar 2010 Python to rescue? • pickles • numpy (record) arrays • relational databases • HDF5 Mittwoch, 10. Februar 2010 pickle • standard library • works with (almost) all Python objects • Python-specific • insecure Mittwoch, 10. Februar 2010 NumPy Record Arrays • spreadsheet-like data structures • picklable (or stored in binary format) • Python-specific Mittwoch, 10. Februar 2010 Relational Databases • define tables with data description and relations between them • implement fast search, grouping and sorting • implemented by many database systems Mittwoch, 10. Februar 2010 • hierarchical dataset. • built on top of HDF5 (API for C, C++, F90, Java) • very efficient on large datasets • object-oriented design Mittwoch, 10. Februar 2010.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    27 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us