{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "###### The latest version of this IPython notebook is available at [http://github.com/jckantor/ESTM60203](http://github.com/jckantor/ESTM60203) for noncommercial use under terms of the [Creative Commons Attribution Noncommericial ShareAlike License (CC BY-NC-SA 4.0)](http://creativecommons.org/licenses/by-nc-sa/4.0/)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "J.C. Kantor (Kantor.1@nd.edu)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "# Getting Started with IPython" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The purpose of this [IPython notebook](http://ipython.org/notebook.html) is to get you started in using Python (actually, the interactive variant called IPython)calculations assuming this is your first exposure to Python." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Initializations" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n" ], "text/plain": [ "" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from IPython.core.display import HTML\n", "HTML(open(\"styles/custom.css\", \"r\").read())" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Step 0: Install IPython" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The first step is to obtain a working IPython environment. The easiest approach is to sign up for a free account on a cloud-based service such as [Wakari.io](https://www.wakari.io/). You'll need internet connectivity to access your work, but there's nothing to install, no software to maintain, and you can work with nothing more than a browser on a Chromebook or tablet.\n", "\n", "Alternatively, you can install an IPython environment on your laptop. There are at least two excellent and free packages available:\n", "\n", "* [Anaconda](https://store.continuum.io/cshop/anaconda/) available from [Continuum Analytics](http://continuum.io/).\n", "* [Enthought Canopy](https://www.enthought.com/products/canopy/) available from [Enthought, Inc.](https://www.enthought.com/)\n", "\n", "There are differences between these packages, particularly in the methods used to download and maintain additional Python libraries. In both cases the process for downloading and installing the software are well documented and easy to follow. You should allow about 10-30 minutes for the installation depending on your experience and connection speed. \n", "\n", "After installing, be sure to check for updates before proceeding further. With the Anaconda package this is done by executing the following two commands in a terminal window:\n", "\n", " > conda update conda\n", " > conda update anaconda" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Step 1: Start an IPython Notebook Session" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "IPython notebooks (like this one) are simply files in a directory with a `.ipynb` suffix. They can be stored in any directory, including a Dropbox or Google Drive directory. \n", "\n", "To start a notebook session, open a terminal window and navigate to the directory where you will be keeping your notebooks. Then execute the following statement at the command line:\n", "\n", " > ipython notebook --pylab=inline\n", " \n", "The terminal window will show information indicating start up of an ipython session, then browser window will open listing notebooks in your current directory. At this point your options are\n", "\n", "* select one of your existing notebooks to work on,\n", "* start a new notebook by clicking on the `New Notebook` button, or \n", "* import a notebook from another directory by dragging it onto the list of notebooks.\n", "\n", "An IPython notebook consists of cells that hold headings, text, or python code. The user interface is relatively self-explanatory. Take a few minutes now to open, rename, and save a new notebook. \n", "\n", "Here's a quick overview of IPython notebooks prepared by the team that created the software." ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from IPython.display import YouTubeVideo\n", "YouTubeVideo(\"H6dLGQw9yFQ\",560,315)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Step 2: Experiment with Python" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Python is an elegant and modern language for programming and problem solving that has found increasing use by engineers and scientists. In the next few cells we'll demonstrate some basic Python functionality." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Basic Arithmetic Operations" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Basic arithmetic functions" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "a + b = 14\n", "a**b = 144\n", "a/b = 6\n" ] } ], "source": [ "a = 12\n", "b = 2\n", "print \"a + b = \", a + b\n", "print \"a**b = \", a**b\n", "print \"a/b = \", a/b" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Calling a builtin function" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "-2.4492935982947064e-16" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sin(2*pi)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Working with Lists" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Lists are a versatile way of organizing your data in Python. Here are some examples, more can be found on [this Khan Academy video](http://youtu.be/zEyEC34MY1A)." ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[1, 2, 3, 4]\n" ] } ], "source": [ "xList = [1, 2, 3, 4]\n", "print xList" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[1, 2, 3, 4, 5, 6, 7, 8]" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Concatenation\n", "\n", "x = [1, 2, 3, 4];\n", "y = [5, 6, 7, 8];\n", "\n", "x + y" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "10\n", "10\n" ] } ], "source": [ "# Two ways to sum a list of numbers\n", "\n", "print sum(x)\n", "print reduce(add,x)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[ 6 8 10 12]\n", "[6, 8, 10, 12]\n" ] } ], "source": [ "# Two ways to add a two lists of numbers\n", "\n", "print add(x,y)\n", "print map(add,x,y)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A for loop is a means for iterating over the elements of a list. The colon marks the start of code that will be executed for each element of a list. Indenting has meaning in Python. In this case, everything in the indented block will be executed on each iteration of the for loop." ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "x = 1 sin(x) = 0.841470984808\n", "x = 2 sin(x) = 0.909297426826\n", "x = 3 sin(x) = 0.14112000806\n", "x = 4 sin(x) = -0.756802495308\n" ] } ], "source": [ "for x in xList:\n", " print \"x =\",x, \" sin(x) = \", sin(x)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Working with dictionaries" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Dictionaries are useful for storing and retrieving data as key-value pairs. For example, here is a short dictionary of molar masses. The keys are molecular formulas, and the values are the corresponding molar masses." ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "{'H2O': 18.02, 'CO2': 44.01, 'CH4': 16.04, 'O2': 32.0}\n" ] } ], "source": [ "mw = {'CH4': 16.04, 'H2O': 18.02, 'O2':32.00, 'CO2': 44.01}\n", "print mw" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can a value to an existing dictionary." ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "{'H2O': 18.02, 'CO2': 44.01, 'CH4': 16.04, 'O2': 32.0, 'C8H18': 114.23}\n" ] } ], "source": [ "mw['C8H18'] = 114.23\n", "print mw" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can retrieve a value from a dictionary." ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "16.04" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mw['CH4']" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A for loop is a useful means of interating over all key-value pairs of a dictionary." ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The molar mass of H2O is 18.02 \n", "The molar mass of CO2 is 44.01 \n", "The molar mass of CH4 is 16.04 \n", "The molar mass of O2 is 32.00 \n", "The molar mass of C8H18 is 114.23 \n" ] } ], "source": [ "for species in mw.keys():\n", " print \"The molar mass of {:7.2f}\".format(species, mw[species])" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " CH4 16.04\n", " H2O 18.02\n", " O2 32.00\n", " CO2 44.01\n", " C8H18 114.23\n" ] } ], "source": [ "for species in sorted(mw, key = mw.get):\n", " print \" {:<8s} {:>7.2f}\".format(species, mw[species])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Plotting" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "IPython notebooks include plotting functionality very similar to Matlab's. Here are some examples." ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "x = linspace(0,10)\n", "y = sin(x)\n", "z = cos(x)\n", "plot(x,y,'b',x,z,'r')\n", "xlabel('Radians');\n", "ylabel('Value');\n", "title('Plotting Demonstration')\n", "legend(['Sin','Cos'])\n", "grid()" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(-1.0, 1.0, -1.0, 1.0)" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nSUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot(y,z)\n", "axis('equal')" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nRK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "subplot(2,1,1)\n", "plot(x,y)\n", "title('Sin(x)')\n", "\n", "subplot(2,1,2)\n", "plot(x,z)\n", "title('Cos(x)')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Step 3: Solve Equations using Sympy" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "One of the best features of Python is the ability to extend it's functionality by importing special purpose libraries of functions. Here we demonstrate the use of a symbolic algebra package [`Sympy`](http://sympy.org/en/index.html) for routine problem solving." ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nBaSnpwOQnp7O5s2b9SjtG3Xru4COHj1KSUkJkyZN0rsULly4QGxsLEajkSlTphAREaF3SaxcuZJn\nn32WXr261n9mg8HA1KlTmTBhAi+99JLe5VBWVsawYcO49957GTduHD/+8Y9paGjQuyynvLw8Fi5c\nqHcZ+Pn58cgjjzBixAgCAwMZPHgwU6dO1bWmqKgodu/ejcPhoKGhgTfeeIPKykpda7pUTU0NRqMR\nAKPRSE1Njc4VXa5rfTNchzNnznDPPfeQnZ3NwIED9S6HXr16sX//fiorK3nnnXd0HwPk9ddfJyAg\ngLi4uC51tg3w3nvvUVJSwrZt23jhhRfYvXu3rvW0tLSwb98+li9fzr59+xgwYABZWVm61tSmubmZ\nf/zjH8ybN0/vUvj888957rnnOHr0KMePH+fMmTO88sorutYUHh5ORkYGycnJ3HHHHcTFxXW5E542\nBoMBg8GgdxmX6Zp/U9/i/PnzzJ07lx/96EfMnj1b73Iu4+vry5133snevXt1reP999+noKCAkSNH\nkpqayr/+9S/S0tJ0ranN8OHDARg2bBh33303H374oa71mM1mzGYzEydOBOCee+5h3759utbUZtu2\nbYwfP55hw4bpXQp79+7l5ptvxt/fHy8vL+bMmcP777+vd1ksWbKEvXv38vbbbzN48GBGjx6td0lO\nRqOR6upqAKqqqggICNC5ost1uwBQSnHfffcRERHBww8/rHc5AJw8edJ5db+xsZE333yTuLg4XWta\nvXo1FRUVlJWVkZeXx+23385f/vIXXWsCaGhooL6+HoCzZ8+yfft23e8yM5lMBAcHc+TIEUDrc4+M\njNS1pjavvvoqqampepcBaGfbe/bsobGxEaUUO3bs6BJdnSdOnACgvLyc1157rUt0l7VJSUkhNzcX\ngNzc3C53wnrNu4B+8IMfqOHDh6s+ffoos9ms1q9f74br0te2e/duZTAYVExMjIqNjVWxsbFq27Zt\nutZ04MABFRcXp2JiYlR0dLR65plndK3nP7311ltd5i6gL774QsXExKiYmBgVGRmpVq9erXdJSiml\n9u/fryZMmKDGjh2r7r777i5xF9CZM2eUv7+/+uqrr/QuxWnNmjUqIiJCRUVFqbS0NNXc3Kx3SerW\nW29VERERKiYmRv3rX//SrY6270tvb2/n9+WpU6dUYmKislgsKikpSZ0+fVq3+q5GHgQTQggP1e26\ngIQQQnQMCQAhhPBQEgBCCOGhJACEEMJDSQAIIYSHkgAQQggPJQEghOiRbr/9drZv337Zuueee47l\ny5d/4zYhISE4HI7OLs0lTzzxxDXXHTt2jPHjxxMXF0dkZGS7hsaW5wCEED3SSy+9xAcffMD69eud\n6773ve/x7LPPcsstt1x1m5EjR1JcXNwlRvNt89xzz+Hj48Mnn3xCnz59mDx5MocOHbpiXUJCAgDe\n3t6cPXuWyMhI3n33Xcxm8zfvXN/n0IQQonOcOnVKBQQEqPPnzyultPkMRowYoZRS6q9//auKjo5W\nUVFRl43R3zZXRVlZ2WXj+j/77LNq1apVSimlJk+erFauXKkmTJigwsPD1Ycffqhmz56tLBaL+tWv\nfuXcZsOGDcpqtarY2Fj1wAMPqNbW1itqvPHGG9Xjjz+uYmNj1fjx41VxcbFKSkpSo0aNUi+++KLz\n9zIzM1Xfvn3Vu+++e811bb788ksVGhr6rfNuSBeQEKJH8vPzw2q1snXrVkAbVnvBggUcP36cxx57\njF27drF//34++ugjtmzZcs19XTqSp8FgoG/fvnz00UcsW7aMWbNm8eKLL/Lvf/+bP//5z5w+fZrD\nhw+zadMm3n//fUpKSujVq9dVR041GAzceOONlJSUcNttt7F48WJee+019uzZw29+8xsA1q5dS0BA\nAA899BDbtm1jx44dV10H2oyJY8eOZcSIEaxcufJbWzIyKbwQosdKTU0lLy+PlJQUNm7cyPr16/no\no49ISEjA398fgB/+8Ie88847zJo165r7Upf0lqekpADafARRUVHOMf9vuukmysvL2b17N8XFxUyY\nMAHQBok0mUxX3W/bvqKjozl79iwDBgxgwIAB9O3bl6+++oqHHnoI0Pr720KhbR6GS9cBBAcHc+DA\nAaqqqpg8eTLJycmEhoZ+4zFJAAgheqyUlBRWrlxJSUkJDQ0NxMXFUVFRcdnvKKWuGKffy8uLCxcu\nOH9ubGy87Hf69u0LaPOAtL1v+7mlpQXQZgBbvXr1t9Z46b769Olz1X0Bl33RX2sdaEOu33rrrezf\nv/+aASBdQEKIHmvgwIFMmTKFe++91zlM9MSJE3n77bc5deoUra2t5OXlMXny5Mu2MxqNnDhxAofD\nQVNTE6+//nq7P9NgMJCYmEh+fj5ffvkloE0OX15efs3t1He8H8dut9PY2AjA6dOnee+99xg7duw1\nt5EWgBCiR0tNTWXOnDls2rQJ0M6Os7KymDJlCkop7rrrLmbOnAngPMv39vbm17/+NVarlaCgoG+c\n9+CbZvkaM2YMTz31FMnJyVy4cAFvb2/WrVvHiBEjrtj+m/Z1vbOHHT58mEceecS5n1/84heEhYVd\ncxu5DVQIITyUdAEJIYSHkgAQQggPJQEghBAeSgJACCE8lASAEEJ4KAkAIYTwUBIAQgjhof4/uQaf\nHjjm8UMAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import sympy as sym\n", "\n", "sym.var('P V n R T');\n", "\n", "# Gas constant\n", "R = 8.314 # J/K/gmol\n", "R = R * 1000 # J/K/kgmol\n", "\n", "# Moles of air\n", "mAir = 1 # kg\n", "mwAir = 28.97 # kg/kg-mol\n", "n = mAir/mwAir # kg-mol\n", "\n", "# Temperature\n", "T = 298\n", "\n", "# Equation\n", "eqn = sym.Eq(P*V,n*R*T)\n", "\n", "# Solve for P and select the first solution\n", "f = sym.solve(eqn,P)[0]\n", "\n", "# Use the sympy plot function to plot\n", "sym.plot(f,(V,1,10),xlabel='Volume m**3',ylabel='Pressure Pa')\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Step 4: Learn More" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Python offers a full range of programming language features, and there is a seemingly endless range of packages for scientific and engineering computations. Here are some suggestions on places you can go for more information on programming\n", "\n", "Interative learning\n", "\n", "* [Code Academy on Python](http://www.codecademy.com/tracks/python)\n", "\n", "On-line tutorials, books, etc.\n", "\n", "* [Khan Academy Videos on Python Programming](https://www.khanacademy.org/science/computer-science-subject/computer-science)\n", "* [Python Tutorial](http://docs.python.org/2/tutorial/)\n", "* [Think Python: How to Think Like a Computer Scientist](http://www.greenteapress.com/thinkpython/html/index.html)\n", "\n", "Books\n", "\n", "* [Learn Python the Hard Way](http://learnpythonthehardway.org/book/)\n", "\n", "Official documentation, examples, and galleries.\n", "\n", "* [Notebook Examples](https://github.com/ipython/ipython/tree/master/examples/notebooks)\n", "* [Notebook Gallery](https://github.com/ipython/ipython/wiki/A-gallery-of-interesting-IPython-Notebooks)\n", "* [Official Notebook Documentation](http://ipython.org/ipython-doc/stable/interactive/notebook.html)\n", "* [Matplotlib](http://matplotlib.org/index.html) \n", "\n", "Engineering applications\n", "\n", "* [Engineering with Python](http://www.engineeringwithpython.com/)\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.9" } }, "nbformat": 4, "nbformat_minor": 0 }