Commit 2d73e2f2 authored by Laurence Viry's avatar Laurence Viry
Browse files

ajout ipython-in-depth

parents
Présentation R (intro.pynb)
Les objets (objets.pynb)
Manipulation de données (Manip.pynb)
Programmation en R (programmation.pynb)
\ No newline at end of file
#!bin/bash
mkdir ../pdf_outputs
cd outils_developpement_logiciel
pdflatex -shell-escape outils_devel.tex
#cp outils_devel.pdf ../docs/pdf
pdflatex -shell-escape data_visu.tex
cp data_visu.pdf ../docs/pdf
cd ..
cd calcul_parallele/OpenMP/Cours
pdflatex -shell-escape Main_Cours.tex
cp Main_Cours.pdf ../../../docs/pdf/cours_openmp.pdf
cd ../../mpi
pdflatex -shell-escape main.tex
cp main.pdf ../../docs/pdf/cours_mpi.pdf
This source diff could not be displayed because it is too large. You can view the blob instead.
ipython-in-depth @ d0c1c2ae
Subproject commit d0c1c2ae14212d3eb44fdd949f08e475e241ebef
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"data": {
"application/json": {
"cell": {
"!": "OSMagics",
"HTML": "Other",
"SVG": "Other",
"bash": "Other",
"capture": "ExecutionMagics",
"debug": "ExecutionMagics",
"file": "Other",
"html": "DisplayMagics",
"javascript": "DisplayMagics",
"js": "DisplayMagics",
"latex": "DisplayMagics",
"markdown": "DisplayMagics",
"perl": "Other",
"prun": "ExecutionMagics",
"pypy": "Other",
"python": "Other",
"python2": "Other",
"python3": "Other",
"ruby": "Other",
"script": "ScriptMagics",
"sh": "Other",
"svg": "DisplayMagics",
"sx": "OSMagics",
"system": "OSMagics",
"time": "ExecutionMagics",
"timeit": "ExecutionMagics",
"writefile": "OSMagics"
},
"line": {
"alias": "OSMagics",
"alias_magic": "BasicMagics",
"autocall": "AutoMagics",
"automagic": "AutoMagics",
"autosave": "KernelMagics",
"bookmark": "OSMagics",
"cat": "Other",
"cd": "OSMagics",
"clear": "KernelMagics",
"colors": "BasicMagics",
"config": "ConfigMagics",
"connect_info": "KernelMagics",
"cp": "Other",
"debug": "ExecutionMagics",
"dhist": "OSMagics",
"dirs": "OSMagics",
"doctest_mode": "BasicMagics",
"ed": "Other",
"edit": "KernelMagics",
"env": "OSMagics",
"gui": "BasicMagics",
"hist": "Other",
"history": "HistoryMagics",
"killbgscripts": "ScriptMagics",
"ldir": "Other",
"less": "KernelMagics",
"lf": "Other",
"lk": "Other",
"ll": "Other",
"load": "CodeMagics",
"load_ext": "ExtensionMagics",
"loadpy": "CodeMagics",
"logoff": "LoggingMagics",
"logon": "LoggingMagics",
"logstart": "LoggingMagics",
"logstate": "LoggingMagics",
"logstop": "LoggingMagics",
"ls": "Other",
"lsmagic": "BasicMagics",
"lx": "Other",
"macro": "ExecutionMagics",
"magic": "BasicMagics",
"man": "KernelMagics",
"matplotlib": "PylabMagics",
"mkdir": "Other",
"more": "KernelMagics",
"mv": "Other",
"notebook": "BasicMagics",
"page": "BasicMagics",
"pastebin": "CodeMagics",
"pdb": "ExecutionMagics",
"pdef": "NamespaceMagics",
"pdoc": "NamespaceMagics",
"pfile": "NamespaceMagics",
"pinfo": "NamespaceMagics",
"pinfo2": "NamespaceMagics",
"pip": "BasicMagics",
"popd": "OSMagics",
"pprint": "BasicMagics",
"precision": "BasicMagics",
"profile": "BasicMagics",
"prun": "ExecutionMagics",
"psearch": "NamespaceMagics",
"psource": "NamespaceMagics",
"pushd": "OSMagics",
"pwd": "OSMagics",
"pycat": "OSMagics",
"pylab": "PylabMagics",
"qtconsole": "KernelMagics",
"quickref": "BasicMagics",
"recall": "HistoryMagics",
"rehashx": "OSMagics",
"reload_ext": "ExtensionMagics",
"rep": "Other",
"rerun": "HistoryMagics",
"reset": "NamespaceMagics",
"reset_selective": "NamespaceMagics",
"rm": "Other",
"rmdir": "Other",
"run": "ExecutionMagics",
"save": "CodeMagics",
"sc": "OSMagics",
"set_env": "OSMagics",
"store": "StoreMagics",
"sx": "OSMagics",
"system": "OSMagics",
"tb": "ExecutionMagics",
"time": "ExecutionMagics",
"timeit": "ExecutionMagics",
"unalias": "OSMagics",
"unload_ext": "ExtensionMagics",
"who": "NamespaceMagics",
"who_ls": "NamespaceMagics",
"whos": "NamespaceMagics",
"xdel": "NamespaceMagics",
"xmode": "BasicMagics"
}
},
"text/plain": [
"Available line magics:\n",
"%alias %alias_magic %autocall %automagic %autosave %bookmark %cat %cd %clear %colors %config %connect_info %cp %debug %dhist %dirs %doctest_mode %ed %edit %env %gui %hist %history %killbgscripts %ldir %less %lf %lk %ll %load %load_ext %loadpy %logoff %logon %logstart %logstate %logstop %ls %lsmagic %lx %macro %magic %man %matplotlib %mkdir %more %mv %notebook %page %pastebin %pdb %pdef %pdoc %pfile %pinfo %pinfo2 %popd %pprint %precision %profile %prun %psearch %psource %pushd %pwd %pycat %pylab %qtconsole %quickref %recall %rehashx %reload_ext %rep %rerun %reset %reset_selective %rm %rmdir %run %save %sc %set_env %store %sx %system %tb %time %timeit %unalias %unload_ext %who %who_ls %whos %xdel %xmode\n",
"\n",
"Available cell magics:\n",
"%%! %%HTML %%SVG %%bash %%capture %%debug %%file %%html %%javascript %%js %%latex %%markdown %%perl %%prun %%pypy %%python %%python2 %%python3 %%ruby %%script %%sh %%svg %%sx %%system %%time %%timeit %%writefile\n",
"\n",
"Automagic is ON, % prefix IS NOT needed for line magics."
]
},
"execution_count": 1,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"%lsmagic"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"%matplotlib inline\n",
"import matplotlib\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x10c5c36a0>]"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10c4c7f60>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"x = np.linspace(0, 3*np.pi, 500)\n",
"plt.plot(x,np.sin(x**2))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Some simple cell magics\n",
"Timing the execution of code; the 'timeit' magic exists both in line and cell form:\n",
"### timeit\n",
"#### Resultats"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"4.14 ms ± 57 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)\n"
]
}
],
"source": [
"%timeit np.linalg.eigvals(np.random.rand(100,100))"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"4.02 ms ± 170 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)\n"
]
}
],
"source": [
"%%timeit a = np.random.rand(100, 100)\n",
"np.linalg.eigvals(a)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**The %%capture magic can be used to capture the stdout/err of any block of python code**"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"%%capture capt\n",
"import sys\n",
"print('Hello stdout')\n",
"print('and stderr', file=sys.stderr)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'Hello stdout\\n'"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"capt.stdout"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'and stderr\\n'"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"capt.stderr"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Hello stdout\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"and stderr\n"
]
}
],
"source": [
"capt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"** The %%writefile magic is a very useful tool that writes the cell contents as a named file:**"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Writing foo.py\n"
]
}
],
"source": [
"%%writefile foo.py\n",
"print('Hello world')"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Hello world\n"
]
},
{
"data": {
"text/plain": [
"<matplotlib.figure.Figure at 0x10b0c0390>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"%run foo.py"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"application/json": {
"cell": {
"!": "OSMagics",
"HTML": "Other",
"SVG": "Other",
"bash": "Other",
"capture": "ExecutionMagics",
"debug": "ExecutionMagics",
"file": "Other",
"html": "DisplayMagics",
"javascript": "DisplayMagics",
"js": "DisplayMagics",
"latex": "DisplayMagics",
"markdown": "DisplayMagics",
"perl": "Other",
"prun": "ExecutionMagics",
"pypy": "Other",
"python": "Other",
"python2": "Other",
"python3": "Other",
"ruby": "Other",
"script": "ScriptMagics",
"sh": "Other",
"svg": "DisplayMagics",
"sx": "OSMagics",
"system": "OSMagics",
"time": "ExecutionMagics",
"timeit": "ExecutionMagics",
"writefile": "OSMagics"
},
"line": {
"alias": "OSMagics",
"alias_magic": "BasicMagics",
"autocall": "AutoMagics",
"automagic": "AutoMagics",
"autosave": "KernelMagics",
"bookmark": "OSMagics",
"cat": "Other",
"cd": "OSMagics",
"clear": "KernelMagics",
"colors": "BasicMagics",
"config": "ConfigMagics",
"connect_info": "KernelMagics",
"cp": "Other",
"debug": "ExecutionMagics",
"dhist": "OSMagics",
"dirs": "OSMagics",
"doctest_mode": "BasicMagics",
"ed": "Other",
"edit": "KernelMagics",
"env": "OSMagics",
"gui": "BasicMagics",
"hist": "Other",
"history": "HistoryMagics",
"killbgscripts": "ScriptMagics",
"ldir": "Other",
"less": "KernelMagics",
"lf": "Other",
"lk": "Other",
"ll": "Other",
"load": "CodeMagics",
"load_ext": "ExtensionMagics",
"loadpy": "CodeMagics",
"logoff": "LoggingMagics",
"logon": "LoggingMagics",
"logstart": "LoggingMagics",
"logstate": "LoggingMagics",
"logstop": "LoggingMagics",
"ls": "Other",
"lsmagic": "BasicMagics",
"lx": "Other",
"macro": "ExecutionMagics",
"magic": "BasicMagics",
"man": "KernelMagics",
"matplotlib": "PylabMagics",
"mkdir": "Other",
"more": "KernelMagics",
"mv": "Other",
"notebook": "BasicMagics",
"page": "BasicMagics",
"pastebin": "CodeMagics",
"pdb": "ExecutionMagics",
"pdef": "NamespaceMagics",
"pdoc": "NamespaceMagics",
"pfile": "NamespaceMagics",
"pinfo": "NamespaceMagics",
"pinfo2": "NamespaceMagics",
"pip": "BasicMagics",
"popd": "OSMagics",
"pprint": "BasicMagics",
"precision": "BasicMagics",
"profile": "BasicMagics",
"prun": "ExecutionMagics",
"psearch": "NamespaceMagics",
"psource": "NamespaceMagics",
"pushd": "OSMagics",
"pwd": "OSMagics",
"pycat": "OSMagics",
"pylab": "PylabMagics",
"qtconsole": "KernelMagics",
"quickref": "BasicMagics",
"recall": "HistoryMagics",
"rehashx": "OSMagics",
"reload_ext": "ExtensionMagics",
"rep": "Other",
"rerun": "HistoryMagics",
"reset": "NamespaceMagics",
"reset_selective": "NamespaceMagics",
"rm": "Other",
"rmdir": "Other",
"run": "ExecutionMagics",
"save": "CodeMagics",
"sc": "OSMagics",
"set_env": "OSMagics",
"store": "StoreMagics",
"sx": "OSMagics",
"system": "OSMagics",
"tb": "ExecutionMagics",
"time": "ExecutionMagics",
"timeit": "ExecutionMagics",
"unalias": "OSMagics",
"unload_ext": "ExtensionMagics",
"who": "NamespaceMagics",
"who_ls": "NamespaceMagics",
"whos": "NamespaceMagics",
"xdel": "NamespaceMagics",
"xmode": "BasicMagics"
}
},
"text/plain": [
"Available line magics:\n",
"%alias %alias_magic %autocall %automagic %autosave %bookmark %cat %cd %clear %colors %config %connect_info %cp %debug %dhist %dirs %doctest_mode %ed %edit %env %gui %hist %history %killbgscripts %ldir %less %lf %lk %ll %load %load_ext %loadpy %logoff %logon %logstart %logstate %logstop %ls %lsmagic %lx %macro %magic %man %matplotlib %mkdir %more %mv %notebook %page %pastebin %pdb %pdef %pdoc %pfile %pinfo %pinfo2 %popd %pprint %precision %profile %prun %psearch %psource %pushd %pwd %pycat %pylab %qtconsole %quickref %recall %rehashx %reload_ext %rep %rerun %reset %reset_selective %rm %rmdir %run %save %sc %set_env %store %sx %system %tb %time %timeit %unalias %unload_ext %who %who_ls %whos %xdel %xmode\n",
"\n",
"Available cell magics:\n",
"%%! %%HTML %%SVG %%bash %%capture %%debug %%file %%html %%javascript %%js %%latex %%markdown %%perl %%prun %%pypy %%python %%python2 %%python3 %%ruby %%script %%sh %%svg %%sx %%system %%time %%timeit %%writefile\n",
"\n",
"Automagic is ON, % prefix IS NOT needed for line magics."
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"%lsmagic"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"%cat foo.py"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Magics for running code under other interpreters"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"WARNING: ignoring environment value of R_HOME\n",
"\n",
"R version 3.4.2 (2017-09-28) -- \"Short Summer\"\n",
"Copyright (C) 2017 The R Foundation for Statistical Computing\n",
"Platform: x86_64-apple-darwin15.6.0 (64-bit)\n",
"\n",
"R is free software and comes with ABSOLUTELY NO WARRANTY.\n",
"You are welcome to redistribute it under certain conditions.\n",
"Type 'license()' or 'licence()' for distribution details.\n",
"\n",
" Natural language support but running in an English locale\n",
"\n",
"R is a collaborative project with many contributors.\n",
"Type 'contributors()' for more information and\n",
"'citation()' on how to cite R or R packages in publications.\n",
"\n",
"Type 'demo()' for some demos, 'help()' for on-line help, or\n",
"'help.start()' for an HTML browser interface to help.\n",
"Type 'q()' to quit R.\n",
"\n",
"> data(iris)\n",
"> summary(iris$Sepal.Length)\n",
" Min. 1st Qu. Median Mean 3rd Qu. Max. \n",
" 4.300 5.100 5.800 5.843 6.400 7.900 \n",
"> ls()\n",
"[1] \"iris\"\n",
"> \n"
]
}
],
"source": [