You’ve now learned enough to begin exploring the different modules that are available to be used with Python.
Pacakges useful for most scientists include (but are by no means limited to):
- SciPy : An ecosystem of open-source software for mathematics, science, and engineering. This includes…
- NumPy : The fundamental package for scientific computing with Python
- MatPlotLib : A python 2D plotting library which produces publication quality figures in a variety of hardcopy formats
- Pandas : A suite of high-performance, easy-to-use data structures and data analysis tools
- MDAnalysis : A python toolkit to analyse molecular dynamics trajectories
- H5py : Library for dealing with HDF5 data
- Python-HDF4 : Library of wrappers for dealing with HDF4 data
Geospatial specific packages include:
- GDAL : Libraries for dealing with geospatial raster and vector data
- PyProj : Various tools for carrying out cartographic transformations and other geodetic computations
- Rtree : Numerous options for instigating spatial indexing and querying (nearest neighbour searches etc.)
- Shapely : for reading in, manipulating and analysing geometric objects
… and if you are using GIS programs:
- arcpy : (licensed) package for working with ArcGIS
- PyQGIS : development package for working with QGIS
Python also comes with a large standard library of modules that you can view here.
The best way continue to learn python is to now find the modules that help you solve your scientific problems. Try to use their documentation to learn how they work. Use
ipython and the
help() function to play with the objects available in the module. Email the authors if the documentation isn’t clear or file a bug report if the module appears to be broken. If you can, write your Python code so that it can be added back to the community, either as an addition to an existing module or as a new Python package. Remember, documented, tested and clearly-written code is highly valuable. Try to contribute yours back to the community so that you can stop other scientists from having to repeat all of your hard work.