Programming, Numerical Computation and FOSS

Pages

Thursday, July 24, 2014

Python is a versatile and complete scientific computing environment. With NumPy, SciPy and Matplotlib modules, it gets most of the capabilities that one finds in a barebones Matlab environment. After this, you can choose the modules appropriate to your applications. For example, Pandas adds data structures and analysis tools for data analysis. SymPy brings symbolic computing to Python. Then there are the development environments that aid exploratory computing - IPython, Spyder, IEP to name a few. And the game changer, IPython Notebook - a web notebook that combines easy documentation using Markdown and LaTex with live code, output and graphs that can be easily shared or exported to a number of formats. You couldn't ask for more.

Setting up a simple scientific computing environment in Python is also a straight forward matter. Download Python, setuptools, easy_install and pip. Then use pip to download and install NumPy, SciPy, Matplotlib, IPython, IPython-notebook, Pandas, SymPy and any other module you wish to use. You can choose either Python 2 or Python 3. However, choosing Python 2 is the preferred choice at present, perhaps because some modules may not yet be ported to Python 3. Pre-compiled 32-bit and 64-bit binary versions for Windows, for both Python 2 and Python 3, are available at http://www.lfd.uci.edu/~gohlke/pythonlibs/.

With Python gaining significant ground in scientific computing and data analysis, several Python distributions are also available. Especially notable are Anaconda by Continuum Analytics and Enthought Canopy by Enthought. They are Python 2 based, have a package manager to add new modules and update old ones. Continuum Analytics now has a distribution which it calls Miniconda that lets you setup a Python 3 scientific computing environment.

Friday, January 4, 2013

In Python, a module introduces a new namespace and adds functions, classes and variables into your programs, enabling them to do things which they would not be able to without the capabilities imported from the module

Subscribe Now

FeedBurner FeedCount

About this Blog

This blog is a collection of random thoughts about teaching, numerical and scientific computation and programming.

It will be of interest mainly to students of structural engineering and novice and veteran structural engineers. It may also interest other engineers and anyone beginning to learn programming languages for numeric and scientific computations.