Software Environment
Software Environment
Software Environment
1
Django also provides an optional administrative create, read, update and
delete interface that is generated dynamically through introspection and
configured via admin models
Python is a programming language, which means it’a a language both people and computers
can understand. Python was developed by a Dutch software engineer named Guido van
Rossum, who created the language to solve some problems he saw in computer languages of
the time.
2
Python is an interpreted high-level programming language for general-purpose programming.
Created by Guido van Rossum and first released in 1991, Python has a design philosophy that
emphasizes code readability, and a syntax that allows programmers to express concepts in
fewer lines of code, notably using significant whitespace. It provides constructs that enable
clear programming on both small and large scales.
Python features a dynamic type system and automatic memory management. It supports
multiple programming paradigms, including object-oriented, imperative, functional and
procedural, and has a large and comprehensive standard library.
Python interpreters are available for many operating systems. C Python, the reference
implementation of Python, is open source software and has a community-based development
model, as do nearly all of its variant implementations. C Python is managed by the non-profit
Python Software Foundation.
You Can Use Python for Pretty Much Anything
One significant advantage of learning Python is that it’s a general-purpose language that can be
applied in a large variety of projects. Below are just some of the most common fields where
Python has found its use:
Data science
Web development
Computer graphics
3
tool for scientific computing and a solid alternative for commercial packages such as MatLab.
The most popular libraries and tools for data science are:
Pandas: a library for data manipulation and analysis. The library provides data structures and
operations for manipulating numerical tables and time series.
NumPy: the fundamental package for scientific computing with Python, adding support for
large, multi-dimensional arrays and matrices, along with a large library of high-level
mathematical functions to operate on these arrays.
SciPy: a library used by scientists, analysts, and engineers doing scientific computing and
technical computing.
Being a free, cross-platform, general-purpose and high-level programming language, Python
has been widely adopted by the scientific community. Scientists value Python for its precise
and efficient syntax, relatively flat learning curve and the fact that it integrates well with other
languages (e.g. C/C++).
As a result of this popularity there are plenty of Python scientific packages for data
visualization, machine learning, natural language processing, complex data analysis and more.
All of these factors make Python a great tool for scientific computing and a solid alternative for
commercial packages such as MatLab.
Here’s our list of the most popular Python scientific libraries and tools
4
Astropy
The Astropy Project is a collection of packages designed for use in astronomy. The core
astropy package contains functionality aimed at professional astronomers and astrophysicists,
but may be useful to anyone developing astronomy software.
Biopython
Biopython is a collection of non-commercial Python tools for computational biology and
bioinformatics. It contains classes to represent biological sequences and sequence annotations,
and it is able to read and write to a variety of file formats.
Cubes
Cubes is a light-weight Python framework and set of tools for the development of reporting
and analytical applications, Online Analytical Processing (OLAP), multidimensional analysis
and browsing of aggregated data.
DEAP
DEAP is an evolutionary computation framework for rapid prototyping and testing of ideas. It
incorporates the data structures and tools required to implement most common evolutionary
computation techniques such as genetic algorithm, genetic programming, evolution strategies,
particle swarm optimization, differential evolution and estimation of distribution algorithm.
SCOOP
SCOOP is a Python module for distributing concurrent parallel tasks on various environments,
from heterogeneous grids of workstations to supercomputers.
PsychoPy
PsychoPy is a package for the generation of experiments for neuroscience and experimental
psychology. PsychoPy is designed to allow the presentation of stimuli and collection of data
for a wide range of neuroscience, psychology and psychophysics experiments.
Pandas
Pandas is a library for data manipulation and analysis. The library provides data structures and
operations for manipulating numerical tables and time series.
Mlpy
Mlpy is a machine learning library built on top of NumPy/SciPy, the GNU Scientific Libraries.
Mlpy provides a wide range of machine learning methods for supervised and unsupervised
problems and it is aimed at finding a reasonable compromise between modularity,
maintainability, reproducibility, usability and efficiency.
5
matplotlib
Matplotlib is a python 2D plotting library which produces publication quality figures in a
variety of hardcopy formats and interactive environments across platforms. Matplotlib allows
you to generate plots, histograms, power spectra, bar charts, errorcharts, scatterplots, and more.
NumPy
NumPy is the fundamental package for scientific computing with Python, adding support for
large, multi-dimensional arrays and matrices, along with a large library of high-level
mathematical functions to operate on these arrays.
NetworkX
NetworkX is a library for studying graphs which helps you create, manipulate, and study the
structure, dynamics, and functions of complex networks.
TomoPy
TomoPy is an open-sourced Python toolbox to perform tomographic data processing and image
reconstruction tasks. TomoPy provides a collaborative framework for the analysis of
synchrotron tomographic data with the goal to unify the effort of different facilities and
beamlines performing similar tasks.
Theano
Theano is a numerical computation Python library. Theano allows you to define, optimize, and
evaluate mathematical expressions involving multi-dimensional arrays efficiently.
SymPy
SymPy is a library for symbolic computation and includes features ranging from basic
symbolic arithmetic to calculus, algebra, discrete mathematics and quantum physics. It
provides computer algebra capabilities either as a standalone application, as a library to other
applications, or live on the web.
SciPy
SciPy is a library used by scientists, analysts, and engineers doing scientific computing and
technical computing. SciPy contains modules for optimization, linear algebra, integration,
interpolation, special functions, FFT, signal and image processing, ODE solvers and other
tasks common in science and engineering.
Scikit-learn
Scikit-learn is a machine learning library. It features various classification, regression and
clustering algorithms including support vector machines, random forests, gradient boosting, k-
6
means and DBSCAN, and is designed to interoperate with the Python numerical and scientific
libraries NumPy and SciPy.
Scikit-image
Scikit-image is a image processing library. It includes algorithms for segmentation, geometric
transformations, color space manipulation, analysis, filtering, morphology, feature detection,
and more.
ScientificPython
ScientificPython is a collection of modules for scientific computing. It contains support for
geometry, mathematical functions, statistics, physical units, IO, visualization, and
parallelization.
SageMath
SageMath is mathematical software with features covering many aspects of mathematics,
including algebra, combinatorics, numerical mathematics, number theory, and calculus.
SageMath uses the Python, supporting procedural, functional and object-oriented constructs.
Veusz
Veusz is a scientific plotting and graphing package designed to produce publication-quality
plots in popular vector formats, including PDF, PostScript and SVG.
Graph-tool
Graph-tool is a module for the manipulation and statistical analysis of graphs.
SunPy
SunPy is a data-analysis environment specializing in providing the software necessary to
analyze solar and heliospheric data in Python.
Bokeh
Bokeh is a Python interactive visualization library that targets modern web browsers for
presentation. Bokeh can help anyone who would like to quickly and easily create interactive
plots, dashboards, and data applications. Its goal is to provide elegant, concise construction of
novel graphics in the style of D3.js, but also deliver this capability with high-performance
interactivity over very large or streaming datasets.
TensorFlow
TensorFlow is an open source software library for machine learning across a range of tasks,
developed by Google to meet their needs for systems capable of building and training neural
networks to detect and decipher patterns and correlations, analogous to the learning and
7
reasoning which humans use. It is currently used for both research and production at Google
products,often replacing the role of its closed-source predecessor, DistBelief.
Nilearn
Nilearn is a Python module for fast and easy statistical learning on NeuroImaging data. Nilearn
makes it easy to use many advanced machine learning, pattern recognition and multivariate
statistical techniques on neuroimaging data for applications such as MVPA (Mutli-Voxel
Pattern Analysis), decoding, predictive modelling, functional connectivity, brain parcellations,
connectomes.
Dmelt
DataMelt, or DMelt, is a software for numeric computation, statistics, analysis of large data
volumes ("big data") and scientific visualization. The program can be used in many areas, such
as natural sciences, engineering, modeling and analysis of financial markets. DMelt can be
used with several scripting languages including Python/Jython, BeanShell, Groovy, Ruby, as
well as with Java.
Python-weka-wrapper
Weka is a suite of machine learning software written in Java, developed at the University of
Waikato, New Zealand. It contains a collection of visualization tools and algorithms for data
analysis and predictive modeling, together with graphical user interfaces for easy access to
these functions. The python-weka-wrapper package makes it easy to run Weka algorithms and
filters from within Python.
Dask
Dask is a flexible parallel computing library for analytic computing composed of two
components: 1) dynamic task scheduling optimized for computation, optimized for interactive
computational workloads, and 2) Big Data collections like parallel arrays, dataframes, and lists
that extend common interfaces like NumPy, Pandas, or Python iterators to larger-than-memory
or distributed environments.
Python Saves Time
Even the classic “Hello, world” program illustrates this point:
print("Hello, world")
For comparison, this is what the same program looks like in Java:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, world");
}
8
}
All the Big Names Use Python
9
Identifier is the name given to entities like class, functions, variables etc. in Python. It helps
differentiating one entity from another.
Rules for writing identifiers
Identifiers can be a combination of letters in lowercase (a to z) or uppercase (A to Z) or digits
(0 to 9) or an underscore (_). Names like myClass, var_1 and print_this_to_screen, all are valid
example.
An identifier cannot start with a digit. 1variable is invalid, but variable1 is perfectly fine.
Keywords cannot be used as identifiers.
>>> global = 1
File "<interactive input>", line 1
global = 1
^
>>> a@ = 0
File "<interactive input>", line 1
a@ = 0
^
SyntaxError: invalid syntax
Python
Python features a dynamic type system and automatic memory management. It supports
multiple programming paradigms, including object-oriented, imperative, functional and
procedural, and has a large and comprehensive standard library.
Python interpreters are available for many operating systems. C Python, the reference
implementation of Python, is open source software and has a community-based development
10
model, as do nearly all of its variant implementations. C Python is managed by the non-profit
Python Software Foundation.
Python Logo
11