Upload
dinugherman
View
111
Download
0
Tags:
Embed Size (px)
DESCRIPTION
Citation preview
The Joy of SciPy
Part I, Dinu GhermanPart II, Dave Kammeyer (not included here)
Python Users BerlinMeet-up, 2013-02-14
About…Science…
Data
Big Data
Analytics
Machine Learning
… and Python
Visualisation
Numbers
MathAlgorithms
Science, a ReminderDomains
Data
Theory
Models
EducationMath
Experiments
Visualisation
Publication
From ScientificPython “Components”…
SphinxReST (sample)
MatplotlibChacoVeusz…
SymPyNumPyBlaze
Nat. Language ToolkitMol. Modelling ToolkitBioPython.orgPsychoPy.orgAstroPython.org
StacklessPyPyCythonNumbaTheano
PandasPyTablesDisco
Scikit-learn…
PILOpenCVScikit-image
… … …
… to IntegratedScientific Environments
Legacy:
Mathematica
Matlab
Maple
Magma
Py-Environments:
IPython.org
SciPy.org
Sagemath.org
Wakari.io
Mathics.org
Orange
Py-Distributions:
ScientificPython
Enthought, EPD
Anaconda
Python(x, y)
IPython Shell
• Extended Inter- active Python shell
• Tab completion
• Multi-line editing
• Shell access
• Magic functions
• Extensions
• Help
• History
• Debugger
• Bookmarks
• DEMO…
IPython Notebook
• IPython shell in the browser
• Markdown text + executable Python code
• JSON container, including output
• Literate Programming – finally
• Great tutorial experience
• Easy to share running code – w/o hassle
IPython Notebook Demo
• Tour of the IPython notebook (built-in)
• Installing a custom extension
• Combined later with Matplotlib demo
IPython Extension Demo
• Show object graphs
• Reuse a previously written package
• Run interactively in the notebook
• Notebook:http://nbviewer.ipython.org/4770302/
• Code:https://gist.github.com/deeplook/4731035
Matplotlib
• Scientific plots
• 2D, 3D, interactive
• Smart axes, grids
• Beautiful math (TeX)
• Widgets, annotations, …
• http://matplotlib.org/gallery.html
Matplotlib Demo
• Simple plots
• Bézier path editor
• Magic cube
Conferences
• http://conference.scipy.org
• https://www.euroscipy.org
• http://pydata.org
Videos (e.g. by John Hunter , Fernando Pérez et al.):http://pyvideo.org/category/17/pycon-us-2012
†
Selected Books
What to take away
• Use available Python tools for your scientific domain (trivia)!
• Use IPython shell & notebook, Matplotlib– far too powerful to leave to scientists! ;-)
• Have fun with science – seriously!
http://io9.com/5973726/15+year-old-whiz-kid-has-research-on-dwarf-galaxies-published-in-nature
Questions?Exercise?
ExerciseRun the algorithm below using CPython, Cython, PyPy and Numba and compare their performance. This is implementing a spigot algorithm by A. Sale, D. Saada, S. Rabinowitz, as mentioned onhttp://mail.python.org/pipermail/edu-sig/2012-December/010721.html.Code: https://gist.github.com/deeplook/4947835.
def pi_digits(n): "Generate n digits of Pi." k, a, b, a1, b1 = 2, 4, 1, 12, 4 while n > 0: p, q, k = k * k, 2 * k + 1, k + 1 a, b, a1, b1 = a1, b1, p * a + q * a1, p * b + q * b1 d, d1 = a / b, a1 / b1 while d == d1 and n > 0: yield int(d) n -= 1 a, a1 = 10 * (a % b), 10 * (a1 % b1) d, d1 = a / b, a1 / b1
>>> list(pi_digits(20))[3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5, 8, 9, 7, 9, 3, 2, 3, 8, 4]