# Python Libs for Scientists

[Kurt Schwehr ~~https://plus.google.com/102101513984015207006/posts~~] is a Python expert and ocean geologist.

I'm trying to get deeper into Python, and asked him what's some Python packages. Here's his answer.
([source ~~https://plus.google.com/112757647855302148298/posts/MbZzYk1DsEG~~])

Hi Xah, That's a great question that is likely going to get very different answers from different people. First, my list that is less specific to my fields of work... general: ipython, cython, argparse, virtualenv, distribute. I have never gotten into cython myself, but the resulting APIs that use it are definitely very good.

Now the list that includes stuff related to my work topics: matplotlib, scipy/numpy, lxml, pandas, shapely, and gdal (not my favorite Python API design, but the functionality is critical).

And finally a list of packages are amazing (and amazingly daunting)… django, twisted

Here's what these packages are. Items are roughly arranged by category, general interest first.

### Popular

- Django
- Web framework
- Twisted
- Event-driven (non-blocking) network programing framework. (like node.js)

- [argparse] ( http://docs.python.org/dev/library/argparse.html )
- Package for parsing command line args, unix style.
- [lxml] ( http://lxml.de/ )
- XML/HTML parser.

### package, environment, shell, systems

- [iPython] ( https://en.wikipedia.org/wiki/iPython ) ([ipython.org] ( http://ipython.org/ )).
- Advanced interactive shell for Python, also with notebook interface, and embedded images.
- [Cython] ( https://en.wikipedia.org/wiki/Cython )

- https://pypi.python.org/pypi/virtualenv
- Python virtual environment. (different Python apps can use different versions of libs, etc.)
- https://pypi.python.org/pypi/distribute
- Python package/update system.

### Scientific Programing

- [matplotlib] ( https://en.wikipedia.org/wiki/matplotlib ) (http://matplotlib.org/)
- Plotting lib for Python.
- [SciPy] ( https://en.wikipedia.org/wiki/SciPy ) (http://docs.scipy.org/)
- Lib of algorithms and math tools
- [NumPy] ( https://en.wikipedia.org/wiki/NumPy ) (http://www.numpy.org/)
- Extension that supports computing large multi-dimensional array/matrices. (like Matlab)

- http://pandas.pydata.org/
- Python Data Analysis Library
- https://pypi.python.org/pypi/Shapely
- Package for manipulation and analysis of planar geometric objects
- http://www.gdal.org/
- Geospatial Data Abstraction Library.