{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/usr/local/lib/python2.7/site-packages/IPython/kernel/__init__.py:13: ShimWarning: The `IPython.kernel` package has been deprecated. You should import from ipykernel or jupyter_client instead.\n", " \"You should import from ipykernel or jupyter_client instead.\", ShimWarning)\n" ] } ], "source": [ "import numpy as np\n", "import pandas as pd\n", "%matplotlib inline\n", "import matplotlib.pyplot as plt\n", "\n", "from lenstools.statistics.ensemble import Ensemble,Series\n", "from lenstools.statistics.constraints import Emulator\n", "from lenstools.statistics.contours import ContourPlot" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "### Constrain a 2 dimensional parameter space $(\\alpha,\\beta)$ using a 5 dimensional feature $f_i$, sampled at 20 points" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Generate some fake training data" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
parametersfeatures
$\\alpha$$\\beta$$f_0$$f_1$$f_2$$f_3$$f_4$
0000.20.20.20.20.2
1111.21.21.21.21.2
2222.22.22.22.22.2
3333.23.23.23.23.2
4444.24.24.24.24.2
5555.25.25.25.25.2
6666.26.26.26.26.2
7777.27.27.27.27.2
8888.28.28.28.28.2
9999.29.29.29.29.2
\n", "
" ], "text/plain": [ " parameters features \n", " $\\alpha$ $\\beta$ $f_0$ $f_1$ $f_2$ $f_3$ $f_4$\n", "0 0 0 0.2 0.2 0.2 0.2 0.2\n", "1 1 1 1.2 1.2 1.2 1.2 1.2\n", "2 2 2 2.2 2.2 2.2 2.2 2.2\n", "3 3 3 3.2 3.2 3.2 3.2 3.2\n", "4 4 4 4.2 4.2 4.2 4.2 4.2\n", "5 5 5 5.2 5.2 5.2 5.2 5.2\n", "6 6 6 6.2 6.2 6.2 6.2 6.2\n", "7 7 7 7.2 7.2 7.2 7.2 7.2\n", "8 8 8 8.2 8.2 8.2 8.2 8.2\n", "9 9 9 9.2 9.2 9.2 9.2 9.2" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p = np.outer(np.arange(10.0),np.ones(2))\n", "f = np.outer(np.arange(10.0)+0.1*2,np.ones(5))\n", "emulator = Emulator.from_features(f,p,parameter_index=[r\"$\\alpha$\",r\"$\\beta$\"],feature_index=[r\"$f_{0}$\".format(n) for n in range(5)])\n", "emulator" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "#### Generate some fake test feature to fit" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
features
$f_0$$f_1$$f_2$$f_3$$f_4$
04.0322213.9514713.9993353.9526424.03128
\n", "
" ], "text/plain": [ " features \n", " $f_0$ $f_1$ $f_2$ $f_3$ $f_4$\n", "0 4.032221 3.951471 3.999335 3.952642 4.03128" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "test_feature = Series(np.ones(5)*4.0 + 0.05*np.random.randn(5),index=emulator[[\"features\"]].columns)\n", "Ensemble(test_feature).T" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Assume a trivial covariance matrix" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
features
$f_0$$f_1$$f_2$$f_3$$f_4$
features$f_0$0.50.00.00.00.0
$f_1$0.00.50.00.00.0
$f_2$0.00.00.50.00.0
$f_3$0.00.00.00.50.0
$f_4$0.00.00.00.00.5
\n", "
" ], "text/plain": [ " features \n", " $f_0$ $f_1$ $f_2$ $f_3$ $f_4$\n", "features $f_0$ 0.5 0.0 0.0 0.0 0.0\n", " $f_1$ 0.0 0.5 0.0 0.0 0.0\n", " $f_2$ 0.0 0.0 0.5 0.0 0.0\n", " $f_3$ 0.0 0.0 0.0 0.5 0.0\n", " $f_4$ 0.0 0.0 0.0 0.0 0.5" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "features_covariance = Ensemble(np.eye(5)*0.5,index=test_feature.index,columns=test_feature.index)\n", "features_covariance" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Train the emulator and fit the test feature for the maximum likelihood parameters" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": true }, "outputs": [], "source": [ "emulator.train()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Evaluate the score of each of these parameter combinations on the test feature" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
$\\alpha$$\\beta$
00.00.0
10.00.5
20.01.0
30.01.5
40.02.0
50.02.5
60.03.0
70.03.5
80.04.0
90.04.5
100.05.0
110.05.5
120.06.0
130.06.5
140.07.0
150.07.5
160.08.0
170.08.5
180.09.0
190.09.5
200.50.0
210.50.5
220.51.0
230.51.5
240.52.0
250.52.5
260.53.0
270.53.5
280.54.0
290.54.5
.........
3709.05.0
3719.05.5
3729.06.0
3739.06.5
3749.07.0
3759.07.5
3769.08.0
3779.08.5
3789.09.0
3799.09.5
3809.50.0
3819.50.5
3829.51.0
3839.51.5
3849.52.0
3859.52.5
3869.53.0
3879.53.5
3889.54.0
3899.54.5
3909.55.0
3919.55.5
3929.56.0
3939.56.5
3949.57.0
3959.57.5
3969.58.0
3979.58.5
3989.59.0
3999.59.5
\n", "

400 rows × 2 columns

\n", "
" ], "text/plain": [ " $\\alpha$ $\\beta$\n", "0 0.0 0.0\n", "1 0.0 0.5\n", "2 0.0 1.0\n", "3 0.0 1.5\n", "4 0.0 2.0\n", "5 0.0 2.5\n", "6 0.0 3.0\n", "7 0.0 3.5\n", "8 0.0 4.0\n", "9 0.0 4.5\n", "10 0.0 5.0\n", "11 0.0 5.5\n", "12 0.0 6.0\n", "13 0.0 6.5\n", "14 0.0 7.0\n", "15 0.0 7.5\n", "16 0.0 8.0\n", "17 0.0 8.5\n", "18 0.0 9.0\n", "19 0.0 9.5\n", "20 0.5 0.0\n", "21 0.5 0.5\n", "22 0.5 1.0\n", "23 0.5 1.5\n", "24 0.5 2.0\n", "25 0.5 2.5\n", "26 0.5 3.0\n", "27 0.5 3.5\n", "28 0.5 4.0\n", "29 0.5 4.5\n", ".. ... ...\n", "370 9.0 5.0\n", "371 9.0 5.5\n", "372 9.0 6.0\n", "373 9.0 6.5\n", "374 9.0 7.0\n", "375 9.0 7.5\n", "376 9.0 8.0\n", "377 9.0 8.5\n", "378 9.0 9.0\n", "379 9.0 9.5\n", "380 9.5 0.0\n", "381 9.5 0.5\n", "382 9.5 1.0\n", "383 9.5 1.5\n", "384 9.5 2.0\n", "385 9.5 2.5\n", "386 9.5 3.0\n", "387 9.5 3.5\n", "388 9.5 4.0\n", "389 9.5 4.5\n", "390 9.5 5.0\n", "391 9.5 5.5\n", "392 9.5 6.0\n", "393 9.5 6.5\n", "394 9.5 7.0\n", "395 9.5 7.5\n", "396 9.5 8.0\n", "397 9.5 8.5\n", "398 9.5 9.0\n", "399 9.5 9.5\n", "\n", "[400 rows x 2 columns]" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "g = np.arange(0.0,10.0,0.5)\n", "p = np.array(np.meshgrid(g,g,indexing=\"ij\")).reshape(2,400).T\n", "test_parameters = Ensemble(p,columns=emulator.parameter_names)\n", "test_parameters" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
$\\alpha$$\\beta$features
00.00.05.625426e-32
10.00.53.521637e-28
20.01.04.897591e-24
30.01.55.708903e-20
40.02.03.206524e-16
50.02.57.267817e-13
60.03.06.592555e-10
70.03.52.413168e-07
80.04.03.500603e-05
90.04.51.950301e-03
100.05.04.061495e-02
110.05.53.108992e-01
120.06.08.681904e-01
130.06.58.835149e-01
140.07.03.288347e-01
150.07.54.508659e-02
160.08.02.300813e-03
170.08.54.426370e-05
180.09.03.258601e-07
190.09.59.333513e-10
200.50.03.521637e-28
210.50.51.209583e-24
220.51.06.669063e-21
230.51.52.628684e-17
240.52.05.055777e-14
250.52.54.427197e-11
260.53.01.797327e-08
270.53.53.326160e-06
280.54.02.657245e-04
290.54.58.654495e-03
............
3709.05.07.636822e-25
3719.05.54.866940e-28
3729.06.01.501671e-31
3739.06.52.181730e-35
3749.07.01.445907e-39
3759.07.54.257047e-44
3769.08.05.623061e-49
3779.08.53.629200e-54
3789.09.01.352796e-59
3799.09.53.544478e-65
3809.50.09.333513e-10
3819.50.51.050117e-10
3829.51.07.895252e-12
3839.51.53.832280e-13
3849.52.01.158858e-14
3859.52.52.105540e-16
3869.53.02.216933e-18
3879.53.51.305401e-20
3889.54.04.152889e-23
3899.54.56.906267e-26
3909.55.05.819521e-29
3919.55.52.412454e-32
3929.56.04.779298e-36
3939.56.54.392211e-40
3949.57.01.821566e-44
3959.57.53.373918e-49
3969.58.02.894912e-54
3979.58.51.286516e-59
3989.59.03.544478e-65
3999.59.57.336884e-71
\n", "

400 rows × 3 columns

\n", "
" ], "text/plain": [ " $\\alpha$ $\\beta$ features\n", "0 0.0 0.0 5.625426e-32\n", "1 0.0 0.5 3.521637e-28\n", "2 0.0 1.0 4.897591e-24\n", "3 0.0 1.5 5.708903e-20\n", "4 0.0 2.0 3.206524e-16\n", "5 0.0 2.5 7.267817e-13\n", "6 0.0 3.0 6.592555e-10\n", "7 0.0 3.5 2.413168e-07\n", "8 0.0 4.0 3.500603e-05\n", "9 0.0 4.5 1.950301e-03\n", "10 0.0 5.0 4.061495e-02\n", "11 0.0 5.5 3.108992e-01\n", "12 0.0 6.0 8.681904e-01\n", "13 0.0 6.5 8.835149e-01\n", "14 0.0 7.0 3.288347e-01\n", "15 0.0 7.5 4.508659e-02\n", "16 0.0 8.0 2.300813e-03\n", "17 0.0 8.5 4.426370e-05\n", "18 0.0 9.0 3.258601e-07\n", "19 0.0 9.5 9.333513e-10\n", "20 0.5 0.0 3.521637e-28\n", "21 0.5 0.5 1.209583e-24\n", "22 0.5 1.0 6.669063e-21\n", "23 0.5 1.5 2.628684e-17\n", "24 0.5 2.0 5.055777e-14\n", "25 0.5 2.5 4.427197e-11\n", "26 0.5 3.0 1.797327e-08\n", "27 0.5 3.5 3.326160e-06\n", "28 0.5 4.0 2.657245e-04\n", "29 0.5 4.5 8.654495e-03\n", ".. ... ... ...\n", "370 9.0 5.0 7.636822e-25\n", "371 9.0 5.5 4.866940e-28\n", "372 9.0 6.0 1.501671e-31\n", "373 9.0 6.5 2.181730e-35\n", "374 9.0 7.0 1.445907e-39\n", "375 9.0 7.5 4.257047e-44\n", "376 9.0 8.0 5.623061e-49\n", "377 9.0 8.5 3.629200e-54\n", "378 9.0 9.0 1.352796e-59\n", "379 9.0 9.5 3.544478e-65\n", "380 9.5 0.0 9.333513e-10\n", "381 9.5 0.5 1.050117e-10\n", "382 9.5 1.0 7.895252e-12\n", "383 9.5 1.5 3.832280e-13\n", "384 9.5 2.0 1.158858e-14\n", "385 9.5 2.5 2.105540e-16\n", "386 9.5 3.0 2.216933e-18\n", "387 9.5 3.5 1.305401e-20\n", "388 9.5 4.0 4.152889e-23\n", "389 9.5 4.5 6.906267e-26\n", "390 9.5 5.0 5.819521e-29\n", "391 9.5 5.5 2.412454e-32\n", "392 9.5 6.0 4.779298e-36\n", "393 9.5 6.5 4.392211e-40\n", "394 9.5 7.0 1.821566e-44\n", "395 9.5 7.5 3.373918e-49\n", "396 9.5 8.0 2.894912e-54\n", "397 9.5 8.5 1.286516e-59\n", "398 9.5 9.0 3.544478e-65\n", "399 9.5 9.5 7.336884e-71\n", "\n", "[400 rows x 3 columns]" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "scores = emulator.score(parameters=test_parameters,observed_feature=test_feature,features_covariance=features_covariance)\n", "scores['features'] = np.exp(-0.5*scores['features'])\n", "scores" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Plot the $(\\alpha,\\beta)$ confidence contours" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/usr/local/lib/python2.7/site-packages/matplotlib/text.py:52: UnicodeWarning: Unicode equal comparison failed to convert both arguments to Unicode - interpreting them as being unequal\n", " if rotation in ('horizontal', None):\n", "/usr/local/lib/python2.7/site-packages/matplotlib/text.py:54: UnicodeWarning: Unicode equal comparison failed to convert both arguments to Unicode - interpreting them as being unequal\n", " elif rotation == 'vertical':\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "contour = ContourPlot.from_scores(scores,parameters=emulator.parameter_names)\n", "contour.show()\n", "contour.getLikelihoodValues([0.684],precision=0.1)\n", "contour.plotContours(colors=[\"red\"])\n", "contour.labels()" ] } ], "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.10" } }, "nbformat": 4, "nbformat_minor": 0 }