{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "*This notebook contains course material from [CBE20255](https://jckantor.github.io/CBE20255)\n", "by Jeffrey Kantor (jeff at nd.edu); the content is available [on Github](https://github.com/jckantor/CBE20255.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/CBE20255/blob/master/notebooks/00.00-Getting-Started.ipynb) | [Contents](toc.ipynb) | [Solving Linear Equations with Simpy](http://nbviewer.jupyter.org/github/jckantor/CBE20255/blob/master/notebooks/00.02-Solving-Linear-Equations-with-Sympy.ipynb) >
"
]
},
{
"cell_type": "markdown",
"metadata": {
"colab_type": "text",
"id": "ub8jClemdOv-"
},
"source": [
"# Jupyter Notebooks, Python, and Google Colaboratory"
]
},
{
"cell_type": "markdown",
"metadata": {
"colab_type": "text",
"id": "HlCqwbAEg6Fw"
},
"source": [
"## Summary\n",
"\n",
"The purpose of this notebook is to introduce Jupyter Notebooks, Python, and Google Colaboratory for routine engineering calculations. This introduction assumes this is your first exposure to these topics.\n",
"\n",
"**[Jupyter Notebooks](https://Jupyter.org)** are interactive documents, like this one, that include text and code. The documents are ordinary files with a suffix `.ipynb`. They can be uploaded, downloaded, and shared like any other digital document. The notebooks are composed of individual cells containing either text, code, or the output of a calculation. The code cells be written in different programming languages such as Python, R, and Julia.\n",
"\n",
"**[Python](https://www.python.org/)** is a high-level, object-oriented programming language well suited to the rapid development of web and scientific applications. It is widely used for interactive science and engineering computations where productivity is a more important than achieving the highest levels of numerical performance. Python refers to the language itself plus a large eco-system of development tools, documentation, and code libraries for numerical computations, data management, and graphics. \n",
"\n",
"**[Google Colaboratory](https://colab.research.google.com/)** is Google's cloud environment for viewing and executing Jupyter/Python notebooks. It operates like Google docs, providing for the collaborative creation and editing of notebooks, and allowing notebooks to be saved to your Google Drive account. Because Colaboratory is based entirely in the cloud, there is no need to install any local software. Colaboratory requires only a browser and internet access to view and execute notebooks. \n",
"\n",
"There other software development environments well suited to viewing and executing the notebooks in this repository. Among them are the excellent distributions\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",
"which include tools to view and edit Jupyter notebooks, curated versions of all the major Python code libraries, and additional software development tools. You will want to install one of these distributions if you need off-line access to these notebooks, or if you intend to do more extensive development. "
]
},
{
"cell_type": "markdown",
"metadata": {
"colab_type": "text",
"id": "rZ7GJBr7dOwB"
},
"source": [
"## Setting up Google Colaboratory and Google Drive\n",
"\n",
"The easiest way to get started with Google Colaboratory is to open a notebook. If you are not currently reading this notebook on Colaboratory, open it [here from the github repository](https://colab.research.google.com/github/jckantor/CBE20255/blob/master/notebooks/Getting_Started_with_Jupyter_Notebooks_and_Python.ipynb).\n",
"\n",
"Google Colaboratory is tightly integrated with Google Drive. Notebooks can be opened directly from Google Drive and automatically saved back to Google Drive. Notebooks can be shared, and support mutiple users collaborating simultaenously the same notebook. These features will be familiar if you've previously used Google Docs. You can obtain a Google Drive or a Google One account [here](https://www.google.com/drive/) if you don't already have one. The free tier offers 15GB of storage which is enough for routine use of these notebooks.\n",
"\n",
"When opened from a third party resource such as github, the notebook is initially in `playground mode`. This is fine for viewing notebooks and executing code cells. To save your work you will need to save a copy of the notebook. You can save a copy to:\n",
"\n",
"* your Google Drive\n",
"* a repository in your own github account\n",
"* download the notebook to your personal device\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"colab_type": "text",
"id": "NLvYtMzqdOwI"
},
"source": [
"## Python Basics\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": {
"colab_type": "text",
"id": "6GvOBb-UdOwK"
},
"source": [
"### Arithmetic Operations"
]
},
{
"cell_type": "markdown",
"metadata": {
"colab_type": "text",
"id": "a9jceXKbdOwK"
},
"source": [
"Basic arithmetic functions"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"colab": {},
"colab_type": "code",
"id": "tHiS8xANdOwL",
"outputId": "3c0fb60e-eda8-4b50-9932-ef5abf5e04cb"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"a + b = 14\n",
"a**b = 144\n",
"a/b = 6.0\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": {
"colab_type": "text",
"id": "MoVqT__pdOwP"
},
"source": [
"Most math functions are in the `numpy` library. This next cell shows how to import `numpy` with the prefix `np`, then use it to call a common function"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"colab": {},
"colab_type": "code",
"id": "qaWjJLpPdOwQ",
"outputId": "b592d447-a49e-4261-f36b-7d19188ea5d3"
},
"outputs": [
{
"data": {
"text/plain": [
"-2.4492935982947064e-16"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import numpy as np\n",
"np.sin(2*np.pi)"
]
},
{
"cell_type": "markdown",
"metadata": {
"colab_type": "text",
"id": "FEQz3ZaddOwT"
},
"source": [
"### Lists"
]
},
{
"cell_type": "markdown",
"metadata": {
"colab_type": "text",
"id": "PuQyiwjwdOwT"
},
"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": 8,
"metadata": {
"colab": {},
"colab_type": "code",
"id": "KNekErcidOwV",
"outputId": "027d078b-6ce8-42f2-c8fb-eb4ca6eddb2c"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[1, 2, 3, 4]\n"
]
}
],
"source": [
"xList = [1, 2, 3, 4]\n",
"print(xList)"
]
},
{
"cell_type": "markdown",
"metadata": {
"colab_type": "text",
"id": "Qx1TyoKPdOwY"
},
"source": [
"Concatentation is the operation of joining one list to another. "
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"colab": {},
"colab_type": "code",
"id": "27RQ4lVCdOwZ",
"outputId": "45135d5b-f30d-492b-ca60-c816f2c06eb5"
},
"outputs": [
{
"data": {
"text/plain": [
"[1, 2, 3, 4, 5, 6, 7, 8]"
]
},
"execution_count": 9,
"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": {
"colab_type": "text",
"id": "WFvsUiyOdOwb"
},
"source": [
"A common operation is to apply a binary operation to elements of a single list. For an example such as arithmetic addition, this can be done using the `sum` function from `numpy`."
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"colab": {},
"colab_type": "code",
"id": "3uvuKZRTdOwc",
"outputId": "06b2040c-63bb-4905-d090-6a61367c20a4"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"10\n"
]
}
],
"source": [
"# Two ways to sum a list of numbers\n",
"print(np.sum(x))"
]
},
{
"cell_type": "markdown",
"metadata": {
"colab_type": "text",
"id": "ERV4Nw5UdOwf"
},
"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": 11,
"metadata": {
"colab": {},
"colab_type": "code",
"id": "2lQNC1GddOwg",
"outputId": "70335dd5-1449-4c3f-b16c-351f72895d5b"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"x = 1 sin(x) = 0.8414709848078965\n",
"x = 2 sin(x) = 0.9092974268256817\n",
"x = 3 sin(x) = 0.1411200080598672\n",
"x = 4 sin(x) = -0.7568024953079282\n"
]
}
],
"source": [
"for x in xList:\n",
" print(\"x =\", x, \" sin(x) = \", np.sin(x))"
]
},
{
"cell_type": "markdown",
"metadata": {
"colab_type": "text",
"id": "azHKUfrHdOwj"
},
"source": [
"A **list comprehension** is a very useful tool for creating a new list using data from an existing. For example, suppose you have a list consisting random numbers"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"colab": {},
"colab_type": "code",
"id": "v-wqo344dOwl",
"outputId": "527aabbe-7ddb-4d77-bb35-b70b6026995a"
},
"outputs": [
{
"data": {
"text/plain": [
"[0.1952325947356377,\n",
" 1.5664950727528784,\n",
" 2.8645620994056857,\n",
" 3.610813783399313,\n",
" 4.745590841711996,\n",
" 5.929632460883009,\n",
" 6.0790789599780926,\n",
" 7.643940863853748,\n",
" 8.721811826350383,\n",
" 9.506420667869708]"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from random import random\n",
"\n",
"[i + random() for i in range(0,10)]"
]
},
{
"cell_type": "markdown",
"metadata": {
"colab_type": "text",
"id": "K3IUohOGdOwo"
},
"source": [
"### Dictionaries"
]
},
{
"cell_type": "markdown",
"metadata": {
"colab_type": "text",
"id": "A0wFoRPIdOwp"
},
"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": 13,
"metadata": {
"colab": {},
"colab_type": "code",
"id": "tdy5Uz0YdOwr",
"outputId": "1660f0ad-da69-49f2-b44d-571b0a86441b"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"{'CH4': 16.04, 'H2O': 18.02, 'O2': 32.0, 'CO2': 44.01}\n"
]
}
],
"source": [
"mw = {'CH4': 16.04, 'H2O': 18.02, 'O2':32.00, 'CO2': 44.01}\n",
"print(mw)"
]
},
{
"cell_type": "markdown",
"metadata": {
"colab_type": "text",
"id": "7z0wjD94dOwu"
},
"source": [
"We can a value to an existing dictionary."
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"colab": {},
"colab_type": "code",
"id": "PsDuwnM_dOww",
"outputId": "273fd808-4aec-4f1e-a1b5-c74509d46fb1"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"{'CH4': 16.04, 'H2O': 18.02, 'O2': 32.0, 'CO2': 44.01, 'C8H18': 114.23}\n"
]
}
],
"source": [
"mw['C8H18'] = 114.23\n",
"print(mw)"
]
},
{
"cell_type": "markdown",
"metadata": {
"colab_type": "text",
"id": "2bv2O_vhdOw1"
},
"source": [
"We can retrieve a value from a dictionary."
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"colab": {},
"colab_type": "code",
"id": "FsfBuSZbdOw1",
"outputId": "ede088e7-0f45-4529-d9f5-17dd3860eea4"
},
"outputs": [
{
"data": {
"text/plain": [
"16.04"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"mw['CH4']"
]
},
{
"cell_type": "markdown",
"metadata": {
"colab_type": "text",
"id": "6P6YjVDwdOw6"
},
"source": [
"A for loop is a useful means of interating over all key-value pairs of a dictionary."
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"colab": {},
"colab_type": "code",
"id": "YkPMDAw-dOw7",
"outputId": "965778f0-b25c-457e-8002-dd9f82b94fad"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The molar mass of CH4 is 16.04 \n",
"The molar mass of H2O is 18.02 \n",
"The molar mass of O2 is 32.00 \n",
"The molar mass of CO2 is 44.01 \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": 18,
"metadata": {
"colab": {},
"colab_type": "code",
"id": "0CQdhGm9dOxF",
"outputId": "1a7d2441-7574-4dff-d972-793129e26bc9"
},
"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": {
"colab_type": "text",
"id": "tCAFS5j6dOxI"
},
"source": [
"### Plotting"
]
},
{
"cell_type": "markdown",
"metadata": {
"colab_type": "text",
"id": "3Vneyg9wdOxI"
},
"source": [
"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": 21,
"metadata": {
"colab": {},
"colab_type": "code",
"id": "A1RIkEcPdOxJ",
"outputId": "cdc4220b-756a-4d36-f407-f687e0fa816a"
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"