Future of Python and NumPy for array-oriented computing¶
Author¶
- Travis Oliphant (http://twitter.com/teoliphant)
- Made NumPy
Why Python?¶
- Fits your brain
- Doesn’t get in your way
- Software engineering is more about neuroscience than code.
- Fibonacci is just an Unstable Infinite Impulse Response linear filter
- Shows numpy example, which is fast, but wraps hardware integer
- Wants to make Python faster than C, as in a GPU or FPGA
Conway’s Game of Life¶
Interesting excercies
Shows an example of it
Array oriented
- APL
- Grandfather of most array oriented languages
- J,K,Matlab are descendents
- Numpy is a descendent
- Unicode glyphs
Game of Life is one line in APL
Array-oriented programming deals with arrays as a block
Shows numpy example
Numpy/Scipy History¶
Numeric around ~1994
- More features for array oriented computing
- a[0,1], a[::2]
- Ellipsis object
- Complex numbers
Syntax matters
Aside: We need more numpy/scipy and core collaboration
Derivative Calculations in 1997
Came from MATLAB, but it wasn’t memory efficient enough
Iterative update loop made Python nice
1999 Scipy emerges
Python was better language than MATLAB, but lacked scientific libraries
- Community Effort
- Mostly from academics
Numpy emerged from Numeric in 2005
Numpy¶
- Data types
- Collections of objects
- Arrays
Statistics functions
- Arbitrary Arrays
- Column oriented calculations
Scipy¶
- Stats
- Data fitting
- Interpolation
- Brownian Motion
Pypy¶
- Let’s not chase C, let’s chase Fortran 90.
- Example where Fortran 90 is 7 times faster than Numpy and Pypy
Question¶
- Coolest thing seen with NumPy?
- Implant surgery planning tool
- CT Scans, 3d vis