Skip to content

Instantly share code, notes, and snippets.

@kantale
Created April 1, 2019 17:04
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kantale/4c48f62b712d5f123c376ade66bc7911 to your computer and use it in GitHub Desktop.
Save kantale/4c48f62b712d5f123c376ade66bc7911 to your computer and use it in GitHub Desktop.
TEI lesson_2 1 April 2019
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"alleles = ['M'] * 20 + ['A'] * 180"
]
},
{
"cell_type": "code",
"execution_count": 59,
"metadata": {},
"outputs": [],
"source": [
"import random\n",
"from collections import Counter\n",
"\n",
"def f(alleles):\n",
"\n",
" random.shuffle(alleles)\n",
" genotypes = [(alleles[i], alleles[i+1]) for i in range(0, len(alleles), 2)]\n",
"\n",
"\n",
" c = Counter(genotypes)\n",
" stats = {\n",
" ('A', 'A'): c[('A', 'A')],\n",
" ('A', 'M'): c[('A', 'M')] + c[('M', 'A')],\n",
" ('M', 'M'): c[('M', 'M')],\n",
" }\n",
" return stats\n"
]
},
{
"cell_type": "code",
"execution_count": 54,
"metadata": {},
"outputs": [],
"source": [
"def make_alleles(p, N):\n",
" '''\n",
" This is a docstring\n",
" aksjfgaskjdhfask jdhf aksjdfg asdf\n",
" '''\n",
" \n",
" allele_1 = N*2*p\n",
" allele_2 = N*2*(1-p)\n",
" #return allele_1, allele_2\n",
" return ['M'] * int(allele_1) + ['A'] * (N*2-int(allele_1))"
]
},
{
"cell_type": "code",
"execution_count": 79,
"metadata": {},
"outputs": [],
"source": [
"def measure_found(p, N, iterations, found):\n",
" alleles = make_alleles(p,N)\n",
" counter = 0\n",
" for i in range(iterations):\n",
" \n",
" stats = f(alleles)\n",
" if stats == found:\n",
" counter += 1\n",
" return counter/iterations\n"
]
},
{
"cell_type": "code",
"execution_count": 81,
"metadata": {},
"outputs": [],
"source": [
"def measure_found_2(p, N, iterations, found):\n",
" alleles = make_alleles(p,N)\n",
"\n",
" counter = sum(f(alleles)==found for i in range(iterations))\n",
" \n",
" return counter/iterations\n"
]
},
{
"cell_type": "code",
"execution_count": 80,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"None\n"
]
}
],
"source": [
"def f2():\n",
" pass\n",
"\n",
"q = 'mitsos'\n",
"q = f2()\n",
"print (q)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 83,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.0022"
]
},
"execution_count": 83,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"measure_found(0.1, 20, 100000, {\n",
" ('A', 'A'): 18,\n",
" ('A', 'M'): 0,\n",
" ('M', 'M'): 2,\n",
" })\n",
"# < 10^-5 "
]
},
{
"cell_type": "code",
"execution_count": 84,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.00202"
]
},
"execution_count": 84,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"measure_found_2(0.1, 20, 100000, {\n",
" ('A', 'A'): 18,\n",
" ('A', 'M'): 0,\n",
" ('M', 'M'): 2,\n",
" })"
]
},
{
"cell_type": "code",
"execution_count": 78,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.84751"
]
},
"execution_count": 78,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"measure_found(0.1, 20, 100000, {\n",
" ('A', 'A'): 16,\n",
" ('A', 'M'): 4,\n",
" ('M', 'M'): 0,\n",
" })\n",
"# < 10^-5 "
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 48,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(20.0, 180.0)"
]
},
"execution_count": 48,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"make_alleles(0.1, 100)"
]
},
{
"cell_type": "code",
"execution_count": 46,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'\\n aksjfgaskjdhfask jdhf aksjdfg asdf\\n '"
]
},
"execution_count": 46,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"make_alleles.__doc__"
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0"
]
},
"execution_count": 43,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"\n",
"\n",
"found = {\n",
" ('A', 'A'): 90,\n",
" ('A', 'M'): 0,\n",
" ('M', 'M'): 10,\n",
" }\n",
"\n",
"\n",
"counter = 0\n",
"for i in range(10000):\n",
" stats = f()\n",
" if stats == found:\n",
" counter += 1\n",
"counter\n"
]
},
{
"cell_type": "code",
"execution_count": 92,
"metadata": {},
"outputs": [],
"source": [
"def make_genotypes(p, N):\n",
" '''\n",
" This is a docstring\n",
" aksjfgaskjdhfask jdhf aksjdfg asdf\n",
" '''\n",
" \n",
" allele_1 = N*2*p\n",
" allele_2 = N*2*(1-p)\n",
" #return allele_1, allele_2\n",
" alleles = ['C'] * int(allele_1) + ['A'] * (N*2-int(allele_1))\n",
" random.shuffle(alleles)\n",
" return [(alleles[x], alleles[x+1]) for x in range(0, len(alleles), 2)]"
]
},
{
"cell_type": "code",
"execution_count": 179,
"metadata": {},
"outputs": [],
"source": [
"def gen_cases_control():\n",
" cases = 40\n",
" controls = 60\n",
" genotypes = make_genotypes(0.2, cases+controls)\n",
" gen_cases = genotypes[:40]\n",
" gen_controls = genotypes[40:]\n",
" \n",
" #gen_cases = make_genotypes(p_cases, cases)\n",
" #gen_controls = make_genotypes(p_controls, controls)\n",
" \n",
" #print ('CASES:')\n",
" #print (gen_cases)\n",
" #print ('CONTROLS:')\n",
" #print (gen_controls)\n",
"\n",
" A_cases = sum(x.count('A') for x in gen_cases)\n",
" C_cases = 2*len(gen_cases)-A_cases\n",
" #print(f'A_cases: {A_cases} C_cases: {C_cases}')\n",
" A_controls = sum(x.count('A') for x in gen_controls)\n",
" C_controls = 2*len(gen_controls)-A_controls\n",
" #print(f'A_controls: {A_controls} C_cases: {C_controls}')\n",
"\n",
" f_cases = A_cases/(A_cases+C_cases)\n",
" f_controls = A_controls/(A_controls+C_controls)\n",
" diff = f_cases - f_controls # allelic_test , another one: genotype_test \n",
" #print (f'f_cases: {f_cases} f_controls: {f_controls} diff: {diff}')\n",
" return diff\n"
]
},
{
"cell_type": "code",
"execution_count": 180,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.14583333333333326"
]
},
"execution_count": 180,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"gen_cases_control()"
]
},
{
"cell_type": "code",
"execution_count": 183,
"metadata": {},
"outputs": [],
"source": [
"all_diffs = [gen_cases_control() for x in range(100000)]\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 227,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[0.04166666666666663,\n",
" 0.0625,\n",
" 0.0,\n",
" 0.0,\n",
" -0.02083333333333337,\n",
" -0.02083333333333337,\n",
" -0.02083333333333337,\n",
" -0.02083333333333337,\n",
" 0.0625,\n",
" 0.0,\n",
" 0.04166666666666663,\n",
" 0.0625,\n",
" 0.0,\n",
" 0.0625,\n",
" 0.02083333333333337,\n",
" 0.0,\n",
" 0.16666666666666674,\n",
" -0.02083333333333337,\n",
" -0.02083333333333337,\n",
" 0.125,\n",
" 0.04166666666666663,\n",
" -0.0625,\n",
" 0.0,\n",
" -0.02083333333333337,\n",
" 0.0625,\n",
" 0.0625,\n",
" 0.02083333333333337,\n",
" -0.10416666666666663,\n",
" 0.0,\n",
" 0.04166666666666663,\n",
" 0.04166666666666663,\n",
" 0.04166666666666663,\n",
" 0.0625,\n",
" -0.08333333333333337,\n",
" 0.125,\n",
" 0.02083333333333337,\n",
" 0.02083333333333337,\n",
" -0.08333333333333337,\n",
" 0.125,\n",
" -0.0625,\n",
" 0.02083333333333337,\n",
" -0.04166666666666663,\n",
" 0.10416666666666674,\n",
" 0.0,\n",
" 0.04166666666666663,\n",
" 0.14583333333333326,\n",
" -0.10416666666666663,\n",
" 0.0,\n",
" 0.02083333333333337,\n",
" 0.0625,\n",
" 0.0,\n",
" 0.02083333333333337,\n",
" -0.0625,\n",
" -0.0625,\n",
" 0.04166666666666663,\n",
" -0.02083333333333337,\n",
" -0.02083333333333337,\n",
" -0.08333333333333337,\n",
" -0.10416666666666663,\n",
" 0.0,\n",
" 0.10416666666666674,\n",
" -0.02083333333333337,\n",
" 0.125,\n",
" 0.10416666666666674,\n",
" -0.02083333333333337,\n",
" -0.0625,\n",
" 0.0,\n",
" 0.02083333333333337,\n",
" 0.0,\n",
" 0.0625,\n",
" 0.0,\n",
" -0.02083333333333337,\n",
" -0.125,\n",
" -0.04166666666666663,\n",
" 0.0,\n",
" 0.0625,\n",
" 0.0,\n",
" -0.02083333333333337,\n",
" 0.02083333333333337,\n",
" -0.02083333333333337,\n",
" -0.10416666666666663,\n",
" 0.08333333333333326,\n",
" -0.02083333333333337,\n",
" 0.04166666666666663,\n",
" 0.0625,\n",
" -0.0625,\n",
" 0.0,\n",
" 0.0625,\n",
" 0.14583333333333326,\n",
" -0.02083333333333337,\n",
" 0.04166666666666663,\n",
" -0.02083333333333337,\n",
" 0.04166666666666663,\n",
" 0.10416666666666674,\n",
" -0.04166666666666663,\n",
" 0.08333333333333326,\n",
" 0.0,\n",
" -0.04166666666666663,\n",
" -0.04166666666666663,\n",
" -0.0625,\n",
" 0.0,\n",
" 0.0,\n",
" 0.0,\n",
" -0.02083333333333337,\n",
" 0.0,\n",
" -0.0625,\n",
" 0.04166666666666663,\n",
" 0.0,\n",
" -0.02083333333333337,\n",
" 0.0,\n",
" -0.02083333333333337,\n",
" 0.04166666666666663,\n",
" -0.10416666666666663,\n",
" -0.04166666666666663,\n",
" -0.02083333333333337,\n",
" 0.02083333333333337,\n",
" -0.04166666666666663,\n",
" 0.0625,\n",
" 0.0,\n",
" 0.0625,\n",
" 0.02083333333333337,\n",
" -0.08333333333333337,\n",
" -0.02083333333333337,\n",
" 0.04166666666666663,\n",
" 0.04166666666666663,\n",
" -0.08333333333333337,\n",
" 0.0,\n",
" 0.0625,\n",
" -0.04166666666666663,\n",
" 0.0,\n",
" -0.0625,\n",
" 0.0,\n",
" 0.04166666666666663,\n",
" 0.0625,\n",
" 0.0625,\n",
" -0.02083333333333337,\n",
" -0.0625,\n",
" 0.02083333333333337,\n",
" -0.04166666666666663,\n",
" -0.04166666666666663,\n",
" 0.0625,\n",
" -0.0625,\n",
" 0.0,\n",
" 0.0625,\n",
" 0.04166666666666663,\n",
" 0.04166666666666663,\n",
" 0.02083333333333337,\n",
" -0.04166666666666663,\n",
" -0.02083333333333337,\n",
" -0.02083333333333337,\n",
" -0.04166666666666663,\n",
" 0.125,\n",
" 0.04166666666666663,\n",
" -0.04166666666666663,\n",
" 0.02083333333333337,\n",
" 0.0,\n",
" 0.02083333333333337,\n",
" -0.02083333333333337,\n",
" -0.02083333333333337,\n",
" 0.0625,\n",
" 0.02083333333333337,\n",
" 0.04166666666666663,\n",
" 0.04166666666666663,\n",
" 0.04166666666666663,\n",
" -0.0625,\n",
" 0.0,\n",
" 0.08333333333333326,\n",
" 0.08333333333333326,\n",
" 0.0625,\n",
" -0.04166666666666663,\n",
" 0.02083333333333337,\n",
" 0.0625,\n",
" 0.0,\n",
" 0.0,\n",
" -0.04166666666666663,\n",
" 0.02083333333333337,\n",
" -0.02083333333333337,\n",
" -0.0625,\n",
" 0.02083333333333337,\n",
" -0.04166666666666663,\n",
" -0.08333333333333337,\n",
" -0.10416666666666663,\n",
" -0.08333333333333337,\n",
" -0.02083333333333337,\n",
" 0.0625,\n",
" 0.125,\n",
" 0.0625,\n",
" 0.02083333333333337,\n",
" -0.02083333333333337,\n",
" -0.125,\n",
" 0.02083333333333337,\n",
" 0.0,\n",
" -0.08333333333333337,\n",
" -0.02083333333333337,\n",
" -0.04166666666666663,\n",
" -0.02083333333333337,\n",
" 0.04166666666666663,\n",
" -0.02083333333333337,\n",
" 0.02083333333333337,\n",
" 0.0625,\n",
" -0.02083333333333337,\n",
" 0.0,\n",
" 0.125,\n",
" 0.0,\n",
" -0.08333333333333337,\n",
" -0.04166666666666663,\n",
" -0.02083333333333337,\n",
" -0.04166666666666663,\n",
" -0.10416666666666663,\n",
" -0.08333333333333337,\n",
" -0.04166666666666663,\n",
" -0.14583333333333326,\n",
" 0.0,\n",
" 0.02083333333333337,\n",
" 0.02083333333333337,\n",
" -0.08333333333333337,\n",
" -0.125,\n",
" 0.02083333333333337,\n",
" -0.04166666666666663,\n",
" 0.02083333333333337,\n",
" 0.0625,\n",
" -0.04166666666666663,\n",
" -0.04166666666666663,\n",
" 0.04166666666666663,\n",
" -0.02083333333333337,\n",
" 0.04166666666666663,\n",
" -0.0625,\n",
" 0.0625,\n",
" -0.0625,\n",
" 0.10416666666666674,\n",
" 0.04166666666666663,\n",
" -0.02083333333333337,\n",
" 0.0625,\n",
" -0.0625,\n",
" -0.02083333333333337,\n",
" -0.08333333333333337,\n",
" 0.08333333333333326,\n",
" 0.0,\n",
" 0.02083333333333337,\n",
" -0.08333333333333337,\n",
" 0.02083333333333337,\n",
" 0.08333333333333326,\n",
" -0.04166666666666663,\n",
" -0.0625,\n",
" 0.0625,\n",
" 0.08333333333333326,\n",
" 0.0625,\n",
" 0.10416666666666674,\n",
" 0.02083333333333337,\n",
" -0.02083333333333337,\n",
" 0.04166666666666663,\n",
" -0.0625,\n",
" 0.0,\n",
" -0.02083333333333337,\n",
" 0.0,\n",
" -0.02083333333333337,\n",
" -0.04166666666666663,\n",
" -0.08333333333333337,\n",
" -0.02083333333333337,\n",
" 0.02083333333333337,\n",
" -0.08333333333333337,\n",
" 0.0625,\n",
" 0.10416666666666674,\n",
" 0.02083333333333337,\n",
" 0.0,\n",
" 0.04166666666666663,\n",
" 0.04166666666666663,\n",
" 0.0,\n",
" -0.08333333333333337,\n",
" -0.02083333333333337,\n",
" 0.0625,\n",
" 0.0625,\n",
" -0.04166666666666663,\n",
" 0.04166666666666663,\n",
" -0.02083333333333337,\n",
" -0.0625,\n",
" 0.0625,\n",
" 0.0625,\n",
" -0.02083333333333337,\n",
" 0.0625,\n",
" 0.04166666666666663,\n",
" -0.04166666666666663,\n",
" 0.02083333333333337,\n",
" 0.04166666666666663,\n",
" -0.04166666666666663,\n",
" 0.0,\n",
" -0.02083333333333337,\n",
" 0.0625,\n",
" 0.02083333333333337,\n",
" 0.0,\n",
" -0.16666666666666674,\n",
" 0.0625,\n",
" 0.02083333333333337,\n",
" 0.02083333333333337,\n",
" 0.0625,\n",
" 0.08333333333333326,\n",
" 0.0625,\n",
" 0.10416666666666674,\n",
" 0.125,\n",
" -0.08333333333333337,\n",
" -0.02083333333333337,\n",
" 0.04166666666666663,\n",
" -0.02083333333333337,\n",
" 0.0,\n",
" -0.02083333333333337,\n",
" 0.08333333333333326,\n",
" -0.02083333333333337,\n",
" 0.02083333333333337,\n",
" -0.08333333333333337,\n",
" 0.04166666666666663,\n",
" 0.02083333333333337,\n",
" 0.04166666666666663,\n",
" 0.02083333333333337,\n",
" 0.10416666666666674,\n",
" -0.02083333333333337,\n",
" -0.04166666666666663,\n",
" -0.02083333333333337,\n",
" 0.0625,\n",
" 0.0,\n",
" -0.02083333333333337,\n",
" -0.08333333333333337,\n",
" 0.14583333333333326,\n",
" 0.02083333333333337,\n",
" -0.125,\n",
" -0.04166666666666663,\n",
" 0.0,\n",
" -0.02083333333333337,\n",
" -0.0625,\n",
" -0.02083333333333337,\n",
" 0.0625,\n",
" 0.0625,\n",
" -0.0625,\n",
" 0.04166666666666663,\n",
" -0.08333333333333337,\n",
" -0.08333333333333337,\n",
" 0.0625,\n",
" 0.10416666666666674,\n",
" 0.02083333333333337,\n",
" -0.04166666666666663,\n",
" 0.02083333333333337,\n",
" -0.08333333333333337,\n",
" -0.02083333333333337,\n",
" 0.02083333333333337,\n",
" -0.0625,\n",
" 0.04166666666666663,\n",
" -0.0625,\n",
" -0.0625,\n",
" 0.02083333333333337,\n",
" 0.02083333333333337,\n",
" 0.0,\n",
" 0.02083333333333337,\n",
" -0.0625,\n",
" 0.04166666666666663,\n",
" -0.14583333333333326,\n",
" 0.04166666666666663,\n",
" -0.02083333333333337,\n",
" -0.02083333333333337,\n",
" 0.04166666666666663,\n",
" 0.0625,\n",
" 0.04166666666666663,\n",
" 0.0625,\n",
" 0.0625,\n",
" 0.02083333333333337,\n",
" -0.02083333333333337,\n",
" -0.04166666666666663,\n",
" 0.04166666666666663,\n",
" 0.02083333333333337,\n",
" 0.02083333333333337,\n",
" -0.0625,\n",
" 0.04166666666666663,\n",
" -0.08333333333333337,\n",
" -0.04166666666666663,\n",
" 0.0625,\n",
" 0.02083333333333337,\n",
" -0.04166666666666663,\n",
" 0.02083333333333337,\n",
" -0.125,\n",
" 0.0,\n",
" -0.02083333333333337,\n",
" 0.04166666666666663,\n",
" 0.0625,\n",
" 0.04166666666666663,\n",
" 0.04166666666666663,\n",
" 0.0625,\n",
" 0.04166666666666663,\n",
" -0.08333333333333337,\n",
" 0.08333333333333326,\n",
" 0.02083333333333337,\n",
" 0.0,\n",
" -0.04166666666666663,\n",
" 0.04166666666666663,\n",
" 0.02083333333333337,\n",
" 0.0,\n",
" -0.02083333333333337,\n",
" -0.02083333333333337,\n",
" 0.04166666666666663,\n",
" -0.02083333333333337,\n",
" -0.02083333333333337,\n",
" -0.04166666666666663,\n",
" -0.04166666666666663,\n",
" -0.02083333333333337,\n",
" -0.02083333333333337,\n",
" 0.14583333333333326,\n",
" -0.08333333333333337,\n",
" -0.0625,\n",
" 0.08333333333333326,\n",
" 0.02083333333333337,\n",
" 0.04166666666666663,\n",
" -0.02083333333333337,\n",
" -0.0625,\n",
" -0.02083333333333337,\n",
" -0.08333333333333337,\n",
" -0.02083333333333337,\n",
" -0.04166666666666663,\n",
" -0.14583333333333326,\n",
" -0.02083333333333337,\n",
" 0.04166666666666663,\n",
" -0.04166666666666663,\n",
" 0.02083333333333337,\n",
" 0.04166666666666663,\n",
" 0.0,\n",
" 0.0625,\n",
" 0.0,\n",
" 0.0,\n",
" 0.0,\n",
" -0.04166666666666663,\n",
" 0.0625,\n",
" 0.0,\n",
" -0.0625,\n",
" -0.02083333333333337,\n",
" -0.10416666666666663,\n",
" 0.02083333333333337,\n",
" 0.0,\n",
" 0.08333333333333326,\n",
" 0.10416666666666674,\n",
" 0.0625,\n",
" 0.02083333333333337,\n",
" 0.04166666666666663,\n",
" 0.02083333333333337,\n",
" 0.02083333333333337,\n",
" 0.04166666666666663,\n",
" -0.0625,\n",
" 0.0625,\n",
" -0.04166666666666663,\n",
" 0.02083333333333337,\n",
" -0.02083333333333337,\n",
" 0.0,\n",
" 0.0,\n",
" 0.125,\n",
" 0.04166666666666663,\n",
" 0.0625,\n",
" 0.08333333333333326,\n",
" 0.04166666666666663,\n",
" 0.0,\n",
" -0.02083333333333337,\n",
" 0.02083333333333337,\n",
" 0.02083333333333337,\n",
" -0.0625,\n",
" 0.02083333333333337,\n",
" 0.0,\n",
" 0.02083333333333337,\n",
" 0.08333333333333326,\n",
" 0.02083333333333337,\n",
" -0.0625,\n",
" 0.04166666666666663,\n",
" 0.0,\n",
" 0.02083333333333337,\n",
" -0.04166666666666663,\n",
" -0.08333333333333337,\n",
" 0.0,\n",
" 0.0625,\n",
" 0.125,\n",
" 0.08333333333333326,\n",
" 0.10416666666666674,\n",
" 0.02083333333333337,\n",
" -0.02083333333333337,\n",
" 0.08333333333333326,\n",
" 0.0625,\n",
" -0.04166666666666663,\n",
" 0.04166666666666663,\n",
" 0.04166666666666663,\n",
" 0.04166666666666663,\n",
" -0.02083333333333337,\n",
" 0.0625,\n",
" 0.02083333333333337,\n",
" 0.02083333333333337,\n",
" 0.0,\n",
" -0.08333333333333337,\n",
" 0.0,\n",
" 0.04166666666666663,\n",
" 0.04166666666666663,\n",
" 0.08333333333333326,\n",
" 0.02083333333333337,\n",
" 0.02083333333333337,\n",
" -0.0625,\n",
" -0.02083333333333337,\n",
" 0.0,\n",
" -0.02083333333333337,\n",
" -0.02083333333333337,\n",
" 0.08333333333333326,\n",
" -0.04166666666666663,\n",
" 0.04166666666666663,\n",
" 0.10416666666666674,\n",
" -0.0625,\n",
" -0.02083333333333337,\n",
" 0.04166666666666663,\n",
" 0.04166666666666663,\n",
" -0.08333333333333337,\n",
" 0.0625,\n",
" 0.08333333333333326,\n",
" 0.0625,\n",
" -0.08333333333333337,\n",
" 0.0,\n",
" 0.0,\n",
" 0.04166666666666663,\n",
" -0.04166666666666663,\n",
" 0.04166666666666663,\n",
" -0.125,\n",
" -0.125,\n",
" 0.04166666666666663,\n",
" 0.14583333333333326,\n",
" -0.10416666666666663,\n",
" -0.08333333333333337,\n",
" 0.02083333333333337,\n",
" -0.125,\n",
" 0.0,\n",
" 0.125,\n",
" -0.04166666666666663,\n",
" 0.0,\n",
" 0.04166666666666663,\n",
" 0.0,\n",
" 0.04166666666666663,\n",
" -0.02083333333333337,\n",
" 0.04166666666666663,\n",
" -0.04166666666666663,\n",
" 0.0625,\n",
" 0.0,\n",
" -0.04166666666666663,\n",
" 0.02083333333333337,\n",
" -0.16666666666666674,\n",
" -0.04166666666666663,\n",
" 0.02083333333333337,\n",
" 0.02083333333333337,\n",
" 0.0625,\n",
" 0.0,\n",
" 0.0,\n",
" -0.04166666666666663,\n",
" -0.04166666666666663,\n",
" -0.08333333333333337,\n",
" 0.0625,\n",
" 0.08333333333333326,\n",
" -0.02083333333333337,\n",
" 0.0625,\n",
" -0.02083333333333337,\n",
" 0.08333333333333326,\n",
" -0.02083333333333337,\n",
" -0.04166666666666663,\n",
" 0.02083333333333337,\n",
" -0.0625,\n",
" 0.04166666666666663,\n",
" 0.125,\n",
" -0.02083333333333337,\n",
" 0.04166666666666663,\n",
" 0.0,\n",
" -0.0625,\n",
" -0.125,\n",
" 0.0,\n",
" 0.04166666666666663,\n",
" 0.0,\n",
" 0.02083333333333337,\n",
" 0.0,\n",
" 0.0,\n",
" 0.02083333333333337,\n",
" 0.0625,\n",
" 0.02083333333333337,\n",
" -0.04166666666666663,\n",
" 0.02083333333333337,\n",
" 0.02083333333333337,\n",
" 0.04166666666666663,\n",
" -0.04166666666666663,\n",
" 0.125,\n",
" -0.02083333333333337,\n",
" -0.0625,\n",
" 0.0,\n",
" 0.0,\n",
" -0.04166666666666663,\n",
" 0.0,\n",
" 0.02083333333333337,\n",
" 0.02083333333333337,\n",
" 0.02083333333333337,\n",
" -0.02083333333333337,\n",
" 0.0,\n",
" -0.08333333333333337,\n",
" -0.02083333333333337,\n",
" 0.0,\n",
" 0.0625,\n",
" 0.0,\n",
" 0.08333333333333326,\n",
" 0.0625,\n",
" -0.02083333333333337,\n",
" -0.04166666666666663,\n",
" -0.04166666666666663,\n",
" -0.02083333333333337,\n",
" 0.08333333333333326,\n",
" 0.02083333333333337,\n",
" -0.02083333333333337,\n",
" 0.02083333333333337,\n",
" 0.02083333333333337,\n",
" 0.0625,\n",
" -0.125,\n",
" -0.10416666666666663,\n",
" 0.0,\n",
" 0.02083333333333337,\n",
" 0.0625,\n",
" -0.04166666666666663,\n",
" -0.04166666666666663,\n",
" -0.08333333333333337,\n",
" -0.04166666666666663,\n",
" -0.0625,\n",
" 0.08333333333333326,\n",
" 0.02083333333333337,\n",
" 0.0,\n",
" 0.04166666666666663,\n",
" 0.0,\n",
" 0.04166666666666663,\n",
" 0.04166666666666663,\n",
" -0.08333333333333337,\n",
" 0.04166666666666663,\n",
" 0.125,\n",
" 0.125,\n",
" -0.04166666666666663,\n",
" -0.0625,\n",
" 0.10416666666666674,\n",
" -0.02083333333333337,\n",
" -0.08333333333333337,\n",
" 0.04166666666666663,\n",
" 0.02083333333333337,\n",
" 0.02083333333333337,\n",
" -0.02083333333333337,\n",
" 0.02083333333333337,\n",
" -0.0625,\n",
" 0.10416666666666674,\n",
" -0.0625,\n",
" 0.04166666666666663,\n",
" 0.0,\n",
" 0.0625,\n",
" 0.02083333333333337,\n",
" -0.08333333333333337,\n",
" -0.02083333333333337,\n",
" -0.02083333333333337,\n",
" 0.0,\n",
" 0.02083333333333337,\n",
" 0.0,\n",
" -0.02083333333333337,\n",
" 0.0,\n",
" -0.0625,\n",
" -0.02083333333333337,\n",
" -0.02083333333333337,\n",
" -0.04166666666666663,\n",
" -0.02083333333333337,\n",
" 0.04166666666666663,\n",
" -0.04166666666666663,\n",
" -0.0625,\n",
" -0.02083333333333337,\n",
" 0.0,\n",
" -0.02083333333333337,\n",
" 0.10416666666666674,\n",
" 0.04166666666666663,\n",
" 0.02083333333333337,\n",
" 0.04166666666666663,\n",
" -0.02083333333333337,\n",
" 0.0,\n",
" -0.08333333333333337,\n",
" -0.08333333333333337,\n",
" 0.04166666666666663,\n",
" 0.04166666666666663,\n",
" -0.02083333333333337,\n",
" -0.02083333333333337,\n",
" 0.0,\n",
" 0.04166666666666663,\n",
" -0.04166666666666663,\n",
" 0.0625,\n",
" -0.02083333333333337,\n",
" -0.0625,\n",
" -0.10416666666666663,\n",
" -0.02083333333333337,\n",
" 0.04166666666666663,\n",
" 0.08333333333333326,\n",
" -0.0625,\n",
" 0.0625,\n",
" 0.04166666666666663,\n",
" 0.0,\n",
" -0.0625,\n",
" 0.02083333333333337,\n",
" -0.08333333333333337,\n",
" 0.0,\n",
" 0.0625,\n",
" -0.02083333333333337,\n",
" -0.02083333333333337,\n",
" -0.0625,\n",
" -0.0625,\n",
" 0.0,\n",
" 0.08333333333333326,\n",
" 0.04166666666666663,\n",
" -0.04166666666666663,\n",
" 0.04166666666666663,\n",
" -0.08333333333333337,\n",
" 0.0,\n",
" 0.04166666666666663,\n",
" 0.04166666666666663,\n",
" 0.0,\n",
" 0.0625,\n",
" 0.04166666666666663,\n",
" -0.08333333333333337,\n",
" 0.0,\n",
" -0.02083333333333337,\n",
" 0.10416666666666674,\n",
" -0.125,\n",
" -0.04166666666666663,\n",
" 0.0,\n",
" 0.0,\n",
" -0.04166666666666663,\n",
" 0.0,\n",
" 0.0625,\n",
" -0.02083333333333337,\n",
" -0.02083333333333337,\n",
" 0.08333333333333326,\n",
" -0.04166666666666663,\n",
" -0.0625,\n",
" 0.02083333333333337,\n",
" 0.04166666666666663,\n",
" -0.04166666666666663,\n",
" -0.02083333333333337,\n",
" -0.10416666666666663,\n",
" -0.04166666666666663,\n",
" 0.0625,\n",
" 0.02083333333333337,\n",
" 0.02083333333333337,\n",
" 0.0625,\n",
" 0.02083333333333337,\n",
" 0.04166666666666663,\n",
" 0.04166666666666663,\n",
" 0.08333333333333326,\n",
" -0.02083333333333337,\n",
" 0.02083333333333337,\n",
" -0.14583333333333326,\n",
" 0.0625,\n",
" -0.16666666666666674,\n",
" -0.02083333333333337,\n",
" -0.125,\n",
" 0.125,\n",
" 0.0,\n",
" 0.0,\n",
" -0.04166666666666663,\n",
" 0.02083333333333337,\n",
" -0.0625,\n",
" 0.0625,\n",
" 0.0,\n",
" 0.0,\n",
" -0.02083333333333337,\n",
" -0.02083333333333337,\n",
" 0.08333333333333326,\n",
" 0.0,\n",
" 0.02083333333333337,\n",
" 0.04166666666666663,\n",
" 0.0625,\n",
" 0.02083333333333337,\n",
" -0.0625,\n",
" -0.04166666666666663,\n",
" -0.02083333333333337,\n",
" 0.0,\n",
" 0.02083333333333337,\n",
" 0.0,\n",
" 0.0625,\n",
" -0.08333333333333337,\n",
" 0.02083333333333337,\n",
" -0.0625,\n",
" 0.08333333333333326,\n",
" 0.10416666666666674,\n",
" 0.02083333333333337,\n",
" 0.04166666666666663,\n",
" -0.04166666666666663,\n",
" -0.08333333333333337,\n",
" 0.0,\n",
" -0.10416666666666663,\n",
" 0.02083333333333337,\n",
" -0.02083333333333337,\n",
" 0.0,\n",
" 0.0625,\n",
" -0.02083333333333337,\n",
" 0.02083333333333337,\n",
" -0.0625,\n",
" 0.02083333333333337,\n",
" 0.02083333333333337,\n",
" 0.0625,\n",
" 0.0,\n",
" 0.0,\n",
" 0.0625,\n",
" -0.0625,\n",
" 0.0625,\n",
" 0.04166666666666663,\n",
" 0.04166666666666663,\n",
" -0.0625,\n",
" 0.02083333333333337,\n",
" -0.04166666666666663,\n",
" 0.02083333333333337,\n",
" 0.04166666666666663,\n",
" -0.0625,\n",
" 0.0,\n",
" -0.04166666666666663,\n",
" 0.02083333333333337,\n",
" -0.02083333333333337,\n",
" -0.04166666666666663,\n",
" -0.04166666666666663,\n",
" -0.02083333333333337,\n",
" 0.0,\n",
" 0.02083333333333337,\n",
" -0.08333333333333337,\n",
" 0.0,\n",
" -0.08333333333333337,\n",
" 0.0625,\n",
" 0.0625,\n",
" 0.0625,\n",
" 0.0625,\n",
" -0.04166666666666663,\n",
" 0.04166666666666663,\n",
" 0.0625,\n",
" -0.02083333333333337,\n",
" -0.02083333333333337,\n",
" -0.02083333333333337,\n",
" -0.0625,\n",
" -0.04166666666666663,\n",
" -0.02083333333333337,\n",
" -0.08333333333333337,\n",
" 0.02083333333333337,\n",
" 0.02083333333333337,\n",
" 0.04166666666666663,\n",
" -0.02083333333333337,\n",
" 0.0625,\n",
" 0.02083333333333337,\n",
" 0.10416666666666674,\n",
" 0.04166666666666663,\n",
" 0.02083333333333337,\n",
" 0.0,\n",
" 0.02083333333333337,\n",
" -0.02083333333333337,\n",
" 0.02083333333333337,\n",
" 0.04166666666666663,\n",
" 0.04166666666666663,\n",
" -0.125,\n",
" -0.0625,\n",
" 0.04166666666666663,\n",
" -0.08333333333333337,\n",
" 0.02083333333333337,\n",
" -0.0625,\n",
" 0.0,\n",
" 0.02083333333333337,\n",
" 0.0,\n",
" 0.0,\n",
" -0.02083333333333337,\n",
" 0.04166666666666663,\n",
" -0.04166666666666663,\n",
" -0.02083333333333337,\n",
" 0.0625,\n",
" 0.0625,\n",
" -0.08333333333333337,\n",
" 0.08333333333333326,\n",
" 0.08333333333333326,\n",
" -0.02083333333333337,\n",
" -0.02083333333333337,\n",
" 0.125,\n",
" 0.08333333333333326,\n",
" -0.08333333333333337,\n",
" 0.0,\n",
" -0.04166666666666663,\n",
" 0.0625,\n",
" 0.0,\n",
" -0.0625,\n",
" -0.04166666666666663,\n",
" -0.10416666666666663,\n",
" -0.08333333333333337,\n",
" -0.04166666666666663,\n",
" 0.0,\n",
" 0.02083333333333337,\n",
" 0.04166666666666663,\n",
" -0.02083333333333337,\n",
" -0.04166666666666663,\n",
" -0.14583333333333326,\n",
" -0.04166666666666663,\n",
" 0.0,\n",
" -0.0625,\n",
" -0.02083333333333337,\n",
" 0.10416666666666674,\n",
" -0.08333333333333337,\n",
" 0.02083333333333337,\n",
" 0.08333333333333326,\n",
" -0.04166666666666663,\n",
" 0.0,\n",
" -0.10416666666666663,\n",
" -0.14583333333333326,\n",
" 0.02083333333333337,\n",
" -0.0625,\n",
" -0.02083333333333337,\n",
" 0.0,\n",
" 0.0625,\n",
" -0.04166666666666663,\n",
" -0.04166666666666663,\n",
" -0.04166666666666663,\n",
" -0.04166666666666663,\n",
" -0.02083333333333337,\n",
" 0.04166666666666663,\n",
" 0.0,\n",
" 0.0625,\n",
" -0.04166666666666663,\n",
" -0.04166666666666663,\n",
" -0.0625,\n",
" 0.02083333333333337,\n",
" 0.04166666666666663,\n",
" 0.0,\n",
" 0.0,\n",
" -0.125,\n",
" -0.0625,\n",
" -0.0625,\n",
" -0.0625,\n",
" 0.0,\n",
" 0.04166666666666663,\n",
" 0.0,\n",
" 0.0625,\n",
" -0.0625,\n",
" 0.04166666666666663,\n",
" -0.04166666666666663,\n",
" -0.04166666666666663,\n",
" 0.02083333333333337,\n",
" -0.10416666666666663,\n",
" 0.0,\n",
" 0.02083333333333337,\n",
" 0.08333333333333326,\n",
" 0.02083333333333337,\n",
" 0.0,\n",
" 0.04166666666666663,\n",
" 0.04166666666666663,\n",
" 0.0,\n",
" 0.02083333333333337,\n",
" -0.10416666666666663,\n",
" -0.02083333333333337,\n",
" 0.125,\n",
" 0.04166666666666663,\n",
" -0.125,\n",
" 0.04166666666666663,\n",
" -0.02083333333333337,\n",
" 0.0,\n",
" 0.0,\n",
" 0.04166666666666663,\n",
" -0.02083333333333337,\n",
" 0.0625,\n",
" 0.02083333333333337,\n",
" -0.0625,\n",
" -0.02083333333333337,\n",
" 0.08333333333333326,\n",
" -0.0625,\n",
" 0.0,\n",
" -0.0625,\n",
" 0.04166666666666663,\n",
" 0.08333333333333326,\n",
" 0.0625,\n",
" -0.02083333333333337,\n",
" 0.0,\n",
" 0.0625,\n",
" 0.04166666666666663,\n",
" -0.04166666666666663,\n",
" 0.0625,\n",
" -0.10416666666666663,\n",
" 0.0,\n",
" -0.0625,\n",
" 0.08333333333333326,\n",
" 0.10416666666666674,\n",
" 0.0625,\n",
" -0.02083333333333337,\n",
" 0.02083333333333337,\n",
" -0.02083333333333337,\n",
" -0.0625,\n",
" -0.08333333333333337,\n",
" -0.02083333333333337,\n",
" -0.04166666666666663,\n",
" -0.08333333333333337,\n",
" -0.0625,\n",
" -0.04166666666666663,\n",
" -0.0625,\n",
" -0.08333333333333337,\n",
" -0.0625,\n",
" 0.0625,\n",
" -0.02083333333333337,\n",
" 0.02083333333333337,\n",
" -0.02083333333333337,\n",
" 0.04166666666666663,\n",
" 0.125,\n",
" 0.08333333333333326,\n",
" 0.04166666666666663,\n",
" 0.04166666666666663,\n",
" 0.0,\n",
" ...]"
]
},
"execution_count": 227,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"all_diffs"
]
},
{
"cell_type": "code",
"execution_count": 188,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"FP: 258 FPR: 0.00258\n"
]
}
],
"source": [
"fp = sum(x>0.16 for x in all_diffs)\n",
"fpr = fp/100000\n",
"print (f'FP: {fp} FPR: {fpr}')\n",
"\n",
"# 0.23, fpr<10-8 "
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 150,
"metadata": {},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "code",
"execution_count": 172,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(array([ 0., 0., 0., 0., 0., 0., 0., 0.,\n",
" 0., 0., 10000., 0., 0., 0., 0., 0.,\n",
" 0., 0., 0., 0.]),\n",
" array([-0.5 , -0.45, -0.4 , -0.35, -0.3 , -0.25, -0.2 , -0.15, -0.1 ,\n",
" -0.05, 0. , 0.05, 0.1 , 0.15, 0.2 , 0.25, 0.3 , 0.35,\n",
" 0.4 , 0.45, 0.5 ]),\n",
" <a list of 20 Patch objects>)"
]
},
"execution_count": 172,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.hist(all_diffs, bins=20)"
]
},
{
"cell_type": "code",
"execution_count": 101,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"my name is mitsos happy to see you\n"
]
}
],
"source": [
"a = \"mitsos\"\n",
"print (\"my name is \" + a + \" happy to see you\")"
]
},
{
"cell_type": "code",
"execution_count": 102,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"my name is mitsos happy to see you\n"
]
}
],
"source": [
"a = \"mitsos\"\n",
"print (\"my name is %s happy to see you\" % (a))"
]
},
{
"cell_type": "code",
"execution_count": 103,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"my name is mitsos happy to see you\n"
]
}
],
"source": [
"a = \"mitsos\"\n",
"print (\"my name is {} happy to see you\".format(a))"
]
},
{
"cell_type": "code",
"execution_count": 104,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"my name is mitsos happy to see you\n"
]
}
],
"source": [
"print (\"my name is {a} happy to see you\".format(a=\"mitsos\"))"
]
},
{
"cell_type": "code",
"execution_count": 105,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"my name is mitsos happy to see you\n"
]
}
],
"source": [
"a = \"mitsos\"\n",
"print (f\"my name is {a} happy to see you\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Data from:\n",
"https://twitter.com/meganinlisbon/status/1101870079858409478\n",
"```\n",
"Female: 83/264 accepted = 31.4%\n",
"Male: 255/677 accepted = 37.7%\n",
"```"
]
},
{
"cell_type": "code",
"execution_count": 226,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"OBSERVED DIFF: 0.06226780358981243\n"
]
},
{
"data": {
"text/plain": [
"0.0278"
]
},
"execution_count": 226,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"\n",
"female = 264\n",
"male = 677\n",
"female_acc = 83\n",
"#female_acc = 93\n",
"male_acc = 255\n",
"\n",
"accepted = female_acc + male_acc\n",
"submitted = female + male\n",
"rejected = submitted - accepted\n",
"\n",
"papers = ['+'] * accepted + ['-'] * rejected\n",
"obs_dif = male_acc/male - female_acc/female\n",
"print (f'OBSERVED DIFF: {obs_dif}')\n",
"def gender_bias():\n",
" c = 0 \n",
" N = 10000\n",
" for i in range(N):\n",
" random.shuffle(papers)\n",
"\n",
" papers_sub_women = papers[:female]\n",
" papers_sub_men = papers[female:]\n",
"\n",
" #print (papers_sub_women)\n",
" #print (papers_sub_men)\n",
"\n",
" papers_sub_women_acc = sum(x=='+' for x in papers_sub_women)\n",
" papers_sub_men_acc = sum(x=='+' for x in papers_sub_men)\n",
"\n",
" success_ratio_women = papers_sub_women_acc / female\n",
" success_ratio_men = papers_sub_men_acc / male\n",
"\n",
" diff = success_ratio_men-success_ratio_women\n",
" if diff > obs_dif:\n",
" c += 1\n",
" \n",
" return c/N\n",
"\n",
"gender_bias()\n",
" \n"
]
},
{
"cell_type": "code",
"execution_count": 230,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"OBSERVED DIFF: 0.06226780358981243\n"
]
}
],
"source": [
"female = 264\n",
"male = 677\n",
"female_acc = 83\n",
"#female_acc = 93\n",
"male_acc = 255\n",
"\n",
"accepted = female_acc + male_acc\n",
"submitted = female + male\n",
"rejected = submitted - accepted\n",
"\n",
"papers = ['+'] * accepted + ['-'] * rejected\n",
"obs_dif = male_acc/male - female_acc/female\n",
"print (f'OBSERVED DIFF: {obs_dif}')\n",
"def gender_bias_2():\n",
" c = 0 \n",
" N = 10000\n",
" diffs = []\n",
" for i in range(N):\n",
" random.shuffle(papers)\n",
"\n",
" papers_sub_women = papers[:female]\n",
" papers_sub_men = papers[female:]\n",
"\n",
" #print (papers_sub_women)\n",
" #print (papers_sub_men)\n",
"\n",
" papers_sub_women_acc = sum(x=='+' for x in papers_sub_women)\n",
" papers_sub_men_acc = sum(x=='+' for x in papers_sub_men)\n",
"\n",
" success_ratio_women = papers_sub_women_acc / female\n",
" success_ratio_men = papers_sub_men_acc / male\n",
"\n",
" diff = success_ratio_men-success_ratio_women\n",
" #if diff > obs_dif:\n",
" # c += 1\n",
" diffs.append(diff)\n",
" \n",
" return diffs\n",
"\n",
"diffs = gender_bias_2()\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 249,
"metadata": {},
"outputs": [],
"source": [
"\n",
"\n",
"pr = []\n",
"for x in diffs:\n",
" c = 0\n",
" for y in diffs:\n",
" if y>x:\n",
" c += 1\n",
" p = c/len(diffs)\n",
" if p>0.0:\n",
" pr.append(p)"
]
},
{
"cell_type": "code",
"execution_count": 250,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"\n",
"pr_log = -np.log10(np.array(pr))\n"
]
},
{
"cell_type": "code",
"execution_count": 251,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.plot(range(len(pr_log)), pr_log, '.')\n",
"a = 0.05\n",
"bonferoni_a = -np.log10(a / len(diffs))\n",
"plt.plot([0, len(pr_log)], [bonferoni_a, bonferoni_a], '-', c='red')\n",
"\n",
"plt.show()"
]
}
],
"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.7.1"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment