{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "*This notebook contains course material from [CBE30338](https://jckantor.github.io/CBE30338)\n", "by Jeffrey Kantor (jeff at nd.edu); the content is available [on Github](https://github.com/jckantor/CBE30338.git).\n", "The text is released under the [CC-BY-NC-ND-4.0 license](https://creativecommons.org/licenses/by-nc-nd/4.0/legalcode),\n", "and code is released under the [MIT license](https://opensource.org/licenses/MIT).*" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "< [Getting Started](http://nbviewer.jupyter.org/github/jckantor/CBE30338/blob/master/notebooks/01.00-Getting-Started.ipynb) | [Contents](toc.ipynb) | [Python Basics](http://nbviewer.jupyter.org/github/jckantor/CBE30338/blob/master/notebooks/01.02-Python-Basics.ipynb) >

\"Open

\"Download\"" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "# Getting Started with Python and Jupyter Notebooks" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Summary\n", "\n", "The purpose of this [Jupyter Notebook](http://jupyter.org/) is to get you started using Python and Jupyter Notebooks for routine chemical engineering calculations. This introduction assumes this is your first exposure to Python or Jupyter notebooks." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Step 0: Gain Executable Access to Jupyter Notebooks\n", "\n", "Jupyter notebooks are documents that can be viewed and executed inside any modern web browser. Since you're reading this notebook, you already know how to view a Jupyter notebook. The next step is to learn how to execute computations that may be embedded in a Jupyter notebook.\n", "\n", "To execute Python code in a notebook you will need access to a Python kernal. A kernal is simply a program that runs in the background, maintains workspace memory for variables and functions, and executes Python code. The kernal can be located on the same laptop as your web browser or located in an on-line cloud service. \n", "\n", "**Important Note Regarding Versions** There are two versions of Python in widespread use. Version 2.7 released in 2010, which was the last release of the 2.x series. Version 3.5 is the most recent release of the 3.x series which represents the future direction of language. It has taken years for the major scientific libraries to complete the transition from 2.x to 3.x, but it is now safe to recommend Python 3.x for widespread use. So for this course be sure to use latest verstion, currently 3.6, of the Python language." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Using Jupyter/Python in the Cloud\n", "\n", "The easiest way to use Jupyter notebooks is to sign up for a free or paid account on a cloud-based service such as [Wakari.io](https://www.wakari.io/) or [SageMathCloud](https://cloud.sagemath.com/). You will need continuous internet connectivity to access your work, but the advantages are there is no software to install or maintain. All you need is a modern web browser on your laptop, Chromebook, tablet or other device. Note that the free services are generally heavily oversubscribed, so you should consider a paid account to assure access during prime hours.\n", "\n", "There are also demonstration sites in the cloud, such as [tmpnb.org](https://tmpnb.org/). These start an interactive session where you can upload an existing notebook or create a new one from scratch. Though convenient, these sites are intended mainly for demonstration and generally quite overloaded. More significantly, there is no way to retain your work between sessions, and some python functionality is removed for security reasons." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Installing Jupyter/Python on your Laptop\n", "\n", "For regular off-line use you should consider installing a Jupyter Notebook/Python environment directly on your laptop. This will provide you with reliable off-line access to a computational environment. This will also allow you to install additional code libraries to meet particular needs. \n", "\n", "Choosing this option will require an initial software installation and routine updates. For this course the recommended package is [Anaconda](https://store.continuum.io/cshop/anaconda/) available from [Continuum Analytics](http://continuum.io/). Downloading and installing the software is well documented and easy to follow. Allow about 10-30 minutes for the installation depending on your 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\n", "\n", "Anaconda includes an 'Anaconda Navigator' application that simplifies startup of the notebook environment and manage the update process." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Step 1: Start a Jupyter Notebook Session\n", "\n", "If you are using a cloud-based service a Jupyter session will be started when you log on. \n", "\n", "If you have installed a Jupyter/Python distribution on your laptop then you can open a Jupyter session in one of two different ways:\n", "\n", "* Use the Anaconda Navigator App, or \n", "* open a terminal window on your laptop and execute the following statement at the command line:\n", "\n", " > jupyter notebook\n", "\n", "Either way, once you have opened a session you should see a browser window like this:\n", "\n", "![Screen Shot Jupyter Session](figures/Screen-Shot-Jupyter-Session.png)\n", "\n", "At this point the browser displays a list of directories and files. You can navigate amoung the directories in the usual way by clicking on directory names or on the 'breadcrumbs' located just about the listing. \n", "\n", "Jupyter notebooks are simply files in a directory with a `.ipynb` suffix. They can be stored in any directory including Dropbox or Google Drive. Upload and create new Jupyter notebooks in the displayed directory using the appropriate buttons. Use the checkboxes to select items for other actions, such as to duplicate, to rename, or to delete notebooks and directories.\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 video overview of Jupyter notebooks." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "image/jpeg": "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\n", "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from IPython.display import YouTubeVideo\n", "YouTubeVideo(\"HW29067qVWk\",560,315,rel=0)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Step 2: Simple Calculations with Python\n", "\n", "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\n", "\n", "Basic arithmetic operations are built into the Python langauge. Here are some examples. In particular, note that exponentiation is done with the \\*\\* operator." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "14\n", "144\n", "6.0\n" ] } ], "source": [ "a = 12\n", "b = 2\n", "\n", "print(a + b)\n", "print(a**b)\n", "print(a/b)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Python Libraries\n", "\n", "The Python language has only very basic operations. Most math functions are in various math libraries. The `numpy` library is convenient library. This next cell shows how to import `numpy` with the prefix `np`, then use it to call a common mathematical functions." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "3.141592653589793\n", "2.718281828459045\n", "0.707106781187\n", "0.707106781187\n", "1.0\n" ] } ], "source": [ "import numpy as np\n", "\n", "# mathematical constants\n", "print(np.pi)\n", "print(np.e)\n", "\n", "# trignometric functions\n", "angle = np.pi/4\n", "print(np.sin(angle))\n", "print(np.cos(angle))\n", "print(np.tan(angle))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Working with Lists\n", "\n", "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": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[1, 2, 3, 4]" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "xList = [1, 2, 3, 4]\n", "xList" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Concatentation is the operation of joining one list to another. " ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[1, 2, 3, 4, 5, 6, 7, 8]" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Concatenation\n", "x = [1, 2, 3, 4];\n", "y = [5, 6, 7, 8];\n", "\n", "x + y" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Sum a list of numbers" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "10" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.sum(x)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "An element-by-element operation between two lists may be performed with " ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[ 6 8 10 12]\n", "70\n" ] } ], "source": [ "print(np.add(x,y))\n", "print(np.dot(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. This example also demonstrates string formatting." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "sin(1) = 0.84147\n", "sin(2) = 0.90930\n", "sin(3) = 0.14112\n", "sin(4) = -0.75680\n" ] } ], "source": [ "for x in xList:\n", " print(\"sin({0}) = {1:8.5f}\".format(x,np.sin(x)))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Working with Dictionaries\n", "\n", "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": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'CH4': 16.04, 'CO2': 44.01, 'H2O': 18.02, 'O2': 32.0}" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mw = {'CH4': 16.04, 'H2O': 18.02, 'O2':32.00, 'CO2': 44.01}\n", "mw" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can a value to an existing dictionary." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'C8H18': 114.23, 'CH4': 16.04, 'CO2': 44.01, 'H2O': 18.02, 'O2': 32.0}" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mw['C8H18'] = 114.23\n", "mw" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can retrieve a value from a dictionary." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "16.04" ] }, "execution_count": 11, "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": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The molar mass of H2O is 18.02 \n", "The molar mass of CH4 is 16.04 \n", "The molar mass of C8H18 is 114.23 \n", "The molar mass of O2 is 32.00 \n", "The molar mass of CO2 is 44.01 \n" ] } ], "source": [ "for species in mw.keys():\n", " print(\"The molar mass of {:7.2f}\".format(species, mw[species]))" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "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 with Matplotlib\n", "\n", "Importing the `matplotlib.pyplot` library gives IPython notebooks plotting functionality very similar to Matlab's. Here are some examples using functions from the " ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nRSSUEEIIufgfHu67O//tb7EAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%matplotlib inline\n", "\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "\n", "x = np.linspace(0,10)\n", "y = np.sin(x)\n", "z = np.cos(x)\n", "\n", "plt.plot(x,y,'b',x,z,'r')\n", "plt.xlabel('Radians');\n", "plt.ylabel('Value');\n", "plt.title('Plotting Demonstration')\n", "plt.legend(['Sin','Cos'])\n", "plt.grid()" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(-1.09972447591003,\n", " 1.0979832896606587,\n", " -1.0992804688576738,\n", " 1.0999657366122702)" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nKaWq+P+GEmrdMEuR+wAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.plot(y,z)\n", "plt.axis('equal')" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.subplot(2,1,1)\n", "plt.plot(x,y)\n", "plt.title('Sin(x)')\n", "\n", "plt.subplot(2,1,2)\n", "plt.plot(x,z)\n", "plt.title('Cos(x)')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Solve Equations using Sympy Library\n", "\n", "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": 18, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "85521.9882637211/V\n" ] }, { "data": { "image/png": "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\ncRIEQgjh4v4/MpmIgiYyXDsAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "" ] }, "execution_count": 18, "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 \n", "f = sym.solve(eqn,P)\n", "print(f[0])\n", "\n", "# Use the sympy plot function to plot\n", "sym.plot(f[0],(V,1,10),xlabel='Volume m**3',ylabel='Pressure Pa')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Step 3: Where to Learn More\n", "\n", "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 for engineering applications in Python." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Introduction to Python for Science\n", "\n", "This excellent introduction to python is aimed at undergraduates in science with no programming experience. It is free and available at the following link.\n", "\n", "* [Introduction to Python for Science](https://github.com/djpine/pyman)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Tutorial Introduction to Python for Science and Engineering\n", "\n", "The following text is licensed by the Hesburgh Library for use by Notre Dame students and faculty only. Please refer to the library's [acceptable use policy](http://library.nd.edu/eresources/access/acceptable_use.shtml). Others can find it at [Springer](http://www.springer.com/us/book/9783642549588) or [Amazon](http://www.amazon.com/Scientific-Programming-Computational-Science-Engineering/dp/3642549586/ref=dp_ob_title_bk). Resources for this book are available on [github](http://hplgit.github.io/scipro-primer/).\n", "\n", "* [A Primer on Scientific Programming with Python (Fourth Edition)](http://link.springer.com.proxy.library.nd.edu/book/10.1007/978-3-642-54959-5) by Hans Petter Langtangen. Resources for this book are available on [github](http://hplgit.github.io/scipro-primer/).\n", "\n", "pycse is a package of python functions, examples, and document prepared by John Kitchin at Carnegie Mellon University. It is a recommended for its coverage of topics relevant to chemical engineers, including a chapter on typical chemical engineering computations. \n", "\n", "* [pycse - Python Computations in Science and Engineering](https://github.com/jkitchin/pycse/blob/master/pycse.pdf) by John Kitchin at Carnegie Mellon. This is a link into the the [github repository for pycse](https://github.com/jkitchin/pycse), click on the `Raw` button to download the `.pdf` file." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Interative learning and on-line tutorials\n", "\n", "* [Code Academy on Python](http://www.codecademy.com/tracks/python)\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", "* [Engineering with Python](http://www.engineeringwithpython.com/)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 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) " ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "< [Getting Started](http://nbviewer.jupyter.org/github/jckantor/CBE30338/blob/master/notebooks/01.00-Getting-Started.ipynb) | [Contents](toc.ipynb) | [Python Basics](http://nbviewer.jupyter.org/github/jckantor/CBE30338/blob/master/notebooks/01.02-Python-Basics.ipynb) >

\"Open

\"Download\"" ] } ], "metadata": { "anaconda-cloud": {}, "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.4" } }, "nbformat": 4, "nbformat_minor": 2 }