Skip to content

Instantly share code, notes, and snippets.

@olivierverdier
Created December 8, 2015 11:58
Show Gist options
  • Save olivierverdier/dfefab5f415930889f6e to your computer and use it in GitHub Desktop.
Save olivierverdier/dfefab5f415930889f6e to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Exercise for the course [Python for MATLAB users](http://sese.nu/python-for-matlab-users-ht15/), by Olivier Verdier"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This exercise comes from the [scipy lecture notes](http://www.scipy-lectures.org)."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import numpy as np\n",
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"%matplotlib inline"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The population of Hares, Lynxes and carrots in Canada is in the file [population.txt](http://www.scipy-lectures.org/_downloads/populations.txt). Download that file and place it in this directory."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Once this is done, execute the code below to load the data in the variable `data`."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Important remark: **you should not use any `for` loop in this exercise!** :-)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"data = np.loadtxt('populations.txt')"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"year, hares, lynxes, carrots = data.T # trick: columns to variables"
]
},
{
"cell_type": "code",
"execution_count": 53,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"year, hares, lynxes, carrots = data.T\n",
"populations = data[:,1:]"
]
},
{
"cell_type": "code",
"execution_count": 54,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([[ 1900., 30000., 4000., 48300.],\n",
" [ 1901., 47200., 6100., 48200.],\n",
" [ 1902., 70200., 9800., 41500.],\n",
" [ 1903., 77400., 35200., 38200.],\n",
" [ 1904., 36300., 59400., 40600.],\n",
" [ 1905., 20600., 41700., 39800.],\n",
" [ 1906., 18100., 19000., 38600.],\n",
" [ 1907., 21400., 13000., 42300.],\n",
" [ 1908., 22000., 8300., 44500.],\n",
" [ 1909., 25400., 9100., 42100.],\n",
" [ 1910., 27100., 7400., 46000.],\n",
" [ 1911., 40300., 8000., 46800.],\n",
" [ 1912., 57000., 12300., 43800.],\n",
" [ 1913., 76600., 19500., 40900.],\n",
" [ 1914., 52300., 45700., 39400.],\n",
" [ 1915., 19500., 51100., 39000.],\n",
" [ 1916., 11200., 29700., 36700.],\n",
" [ 1917., 7600., 15800., 41800.],\n",
" [ 1918., 14600., 9700., 43300.],\n",
" [ 1919., 16200., 10100., 41300.],\n",
" [ 1920., 24700., 8600., 47300.]])"
]
},
"execution_count": 54,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Plot the data (year vs each population item), using `label` and `legend`."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Compute the mean (`np.mean?`) and standard deviation (`np.std?`) of each piece of data"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Which year each species had the largest population? (`np.argmax?` and use fancy indexing)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Which year any of the population is over 50000?"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The top two years for each species when they had the lowest population"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"You may use `argsort`, which gives the indices for which the array value would be sorted."
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"np.argsort?"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Compare (plot) the change in hare population (see `np.gradient?`) and the number of lynxes."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"metadata": {
"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.4.3"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment