@@ -5,12 +5,12 @@ Scientific Applications
55Context
66:::::::
77
8- Python is frequently used for high-performance scientific applications. Python
9- is widely used in academia and scientific projects because it is easy to write,
10- and it performs really well.
8+ Python is frequently used for high-performance scientific applications. It
9+ is widely used in academia and scientific projects because it is easy to write
10+ and performs well.
1111
12- Due to its high performance nature, scientific computing in Python often refers
13- to external libraries, typically written in faster languages (like C, or
12+ Due to its high performance nature, scientific computing in Python often
13+ utilizes external libraries, typically written in faster languages (like C, or
1414FORTRAN for matrix operations). The main libraries used are `NumPy `_, `SciPy `_
1515and `Matplotlib `_. Going into detail about these libraries is beyond the scope
1616of the Python guide. However, a comprehensive introduction to the scientific
@@ -24,13 +24,14 @@ Tools
2424IPython
2525-------
2626
27- `IPython <http://ipython.org/ >`_ is an enhanced version of Python interpreter.
28- The features it provides are of great interest for the scientists. The `inline mode `
27+ `IPython <http://ipython.org/ >`_ is an enhanced version of Python interpreter,
28+ which provides features of great interest to scientists. The `inline mode `
2929allow graphics and plots to be displayed in the terminal (Qt based version).
30- Moreover the `notebook ` mode supports literate programming and reproducible science
31- generating a web-based Python notebook. This notebook allowing to store chunk of
32- Python code along side to the results and additional comments (HTML, LaTeX, Markdown).
33- The notebook could be shared and exported in various file formats.
30+ Moreover, the `notebook ` mode supports literate programming and reproducible
31+ science generating a web-based Python notebook. This notebook allows you to
32+ store chunks of Python code along side the results and additional comments
33+ (HTML, LaTeX, Markdown). The notebook can then be shared and exported in various
34+ file formats.
3435
3536
3637Libraries
@@ -45,9 +46,9 @@ problem of running slower algorithms on Python by using multidimensional arrays
4546and functions that operate on arrays. Any algorithm can then be expressed as a
4647function on arrays, allowing the algorithms to be run quickly.
4748
48-
4949NumPy is part of the SciPy project, and is released as a separate library so
50- people who only need the basic requirements can just use NumPy.
50+ people who only need the basic requirements can use it without installing the
51+ rest of SciPy.
5152
5253NumPy is compatible with Python versions 2.4 through to 2.7.2 and 3.1+.
5354
@@ -56,88 +57,90 @@ Numba
5657
5758`Numba <http://numba.pydata.org >`_ is an Numpy aware Python compiler
5859(just-in-time (JIT) specializing compiler) which compiles annotated Python (and
59- Numpy) code to LLVM (Low Level Virtual Machine) ( through special decorators) .
60- Briefly, Numba using system that compiles Python code with LLVM to code which
60+ Numpy) code to LLVM (Low Level Virtual Machine) through special decorators.
61+ Briefly, Numba uses a system that compiles Python code with LLVM to code which
6162can be natively executed at runtime.
6263
6364SciPy
6465-----
6566
66- `SciPy <http://scipy.org/ >`_ is a library that uses Numpy for more mathematical
67- functions. SciPy uses NumPy arrays as the basic data structure. SciPy comes
68- with modules for various commonly used tasks in scientific programming, for
69- example: linear algebra, integration (calculus), ordinary differential equation
70- solvers and signal processing.
67+ `SciPy <http://scipy.org/ >`_ is a library that uses NumPy for more mathematical
68+ functions. SciPy uses NumPy arrays as the basic data structure, and comes
69+ with modules for various commonly used tasks in scientific programming,
70+ including linear algebra, integration (calculus), ordinary differential equation
71+ solving and signal processing.
7172
7273Matplotlib
7374----------
7475
7576`Matplotlib <http://matplotlib.sourceforge.net/ >`_ is a flexible plotting
7677library for creating interactive 2D and 3D plots that can also be saved as
77- manuscript-quality figures. The API in many ways reflects that of `MATLAB
78+ manuscript-quality figures. The API in many ways reflects that of `MATLAB
7879<http://www.mathworks.com/products/matlab/> `_, easing transition of MATLAB
79- users to Python. Many examples, along with the source code to re-create them,
80- can be browsed at the `matplotlib gallery
80+ users to Python. Many examples, along with the source code to re-create them,
81+ are available in the `matplotlib gallery
8182<http://matplotlib.sourceforge.net/gallery.html> `_.
8283
8384Pandas
8485------
86+
8587`Pandas <http://pandas.pydata.org/ >`_ is data manipulation library
86- based on Numpy and which provides many useful functions for accessing,
88+ based on Numpy which provides many useful functions for accessing,
8789indexing, merging and grouping data easily. The main data structure (DataFrame)
88- is close to what could be found in the R statistical package, that is
89- an heterogeneous data tables with name indexing, time series operations
90- and auto-alignment of data.
90+ is close to what could be found in the R statistical package; that is,
91+ heterogeneous data tables with name indexing, time series operations and
92+ auto-alignment of data.
9193
9294Rpy2
9395----
96+
9497`Rpy2 <http://rpy.sourceforge.net/rpy2.html >`_ is a Python binding for the R
95- statistical package allowing to execute R functions from Python and passing
96- data back and forth the two environments. Rpy2 is the object oriented
97- implementation of the binding based on `Rpy <http://rpy.sourceforge.net/rpy.html >`_.
98+ statistical package allowing the execution of R functions from Python and passing
99+ data back and forth between the two environments. Rpy2 is the object oriented
100+ implementation of the `Rpy <http://rpy.sourceforge.net/rpy.html >`_ bindings .
98101
99102PsychoPy
100103--------
101104
102105`PsychoPy <http://www.psychopy.org/ >`_ is a library for cognitive scientists
103- allowing to create cognitive psychology and neuroscience experiments. The library
104- handles both presentation of stimuli, scripting of experimental design and
105- data collection.
106+ allowing the creation of cognitive psychology and neuroscience experiments.
107+ The library handles presentation of stimuli, scripting of experimental design
108+ and data collection.
106109
107110
108111Resources
109112:::::::::
110113
111- Installation of scientific Python packages can be troublesome. Many of these
112- packages are implemented as Python C extensions which need to be compiled.
114+ Installation of scientific Python packages can be troublesome, as many of
115+ these packages are implemented as Python C extensions which need to be compiled.
113116This section lists various so-called scientific Python distributions which
114117provide precompiled and easy-to-install collections of scientific Python
115118packages.
116119
117120Unofficial Windows Binaries for Python Extension Packages
118121---------------------------------------------------------
119122
120- Many people who do scientific computing are on Windows. And yet many of the
121- scientific computing packages are notoriously difficult to build and install.
122- `Christoph Gohlke <http://www.lfd.uci.edu/~gohlke/pythonlibs/ >`_ however, has
123- compiled a list of Windows binaries for many useful Python packages. The list
124- of packages has grown from a mainly scientific Python resource to a more
125- general list. It might be a good idea to check it out if you're on Windows .
123+ Many people who do scientific computing are on Windows, yet many of the
124+ scientific computing packages are notoriously difficult to build and install
125+ on this platform. `Christoph Gohlke <http://www.lfd.uci.edu/~gohlke/pythonlibs/ >`_
126+ however, has compiled a list of Windows binaries for many useful Python packages.
127+ The list of packages has grown from a mainly scientific Python resource to a more
128+ general list. If you're on Windows, you may want to check it out.
126129
127130Anaconda
128131--------
129132
130133`Continuum Analytics <http://continuum.io/ >`_ offers the `Anaconda
131134Python Distribution <https://store.continuum.io/cshop/anaconda> `_ which
132- includes all the common scientific Python packages and additionally many
133- packages related to data analytics and big data. Anaconda itself is free, and
134- Continuum sells a number of proprietary add-ons. Free
135- licenses for the add-ons are available for academics and researchers.
135+ includes all the common scientific Python packages as well as many packages
136+ related to data analytics and big data. Anaconda itself is free, and
137+ Continuum sells a number of proprietary add-ons. Free licenses for the
138+ add-ons are available for academics and researchers.
136139
137140Canopy
138141------
139142
140- `Canopy <https://www.enthought.com/products/canopy/>' _ is another scientific Python
141- distribution, produced by `Enthought <https://www.enthought.com/>`_. A limited
142- 'Canopy Express' variant is available for free, and Enthought charge for the
143- full distribution. Free licenses are available for academics.
143+ `Canopy <https://www.enthought.com/products/canopy/ >` _ is another scientific
144+ Python distribution, produced by `Enthought <https://www.enthought.com/ >`_.
145+ A limited 'Canopy Express' variant is available for free, but Enthought
146+ charges for the full distribution. Free licenses are available for academics.
0 commit comments