├── .gitignore
├── LICENSE
├── README.md
├── animation
├── None0000000.png
├── chap02_anim.ipynb
├── chap03_anim.ipynb
├── chap04_anim.ipynb
├── chap06_anim.ipynb
├── chap08_anim.ipynb
├── chap09_anim.ipynb
└── plot_util.py
├── data
├── ch10_access.csv
├── ch10_enquete.csv
├── ch11_ad.csv
├── ch11_potato.csv
├── ch11_training_ind.csv
├── ch11_training_rel.csv
├── ch12_scores_reg.csv
├── ch1_sport_test.csv
├── ch2_scores_em.csv
├── ch3_anscombe.npy
└── ch4_scores400.csv
├── notebook
├── chap01.ipynb
├── chap02.ipynb
├── chap03.ipynb
├── chap04.ipynb
├── chap05.ipynb
├── chap06.ipynb
├── chap07.ipynb
├── chap08.ipynb
├── chap09.ipynb
├── chap10.ipynb
├── chap11.ipynb
└── chap12.ipynb
├── samplecode.png
└── tutorial
├── env_const
├── images
│ ├── notebook1.png
│ ├── notebook2.png
│ └── notebook3.png
├── macos.md
├── ubuntu16.md
└── windows10.md
├── matplotlib_ja.ipynb
├── numpy.ipynb
├── pandas.ipynb
└── python.ipynb
/.gitignore:
--------------------------------------------------------------------------------
1 | __pycache__
2 | *.egg-info
3 | *~
4 | *.bak
5 | .ipynb_checkpoints
6 | tutorial/test.npy
7 | Untitled.ipynb
8 | None0000000.png
9 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | BSD 3-Clause License
2 |
3 | Copyright (c) 2018, Hiroki Taniai
4 | All rights reserved.
5 |
6 | Redistribution and use in source and binary forms, with or without
7 | modification, are permitted provided that the following conditions are met:
8 |
9 | * Redistributions of source code must retain the above copyright notice, this
10 | list of conditions and the following disclaimer.
11 |
12 | * Redistributions in binary form must reproduce the above copyright notice,
13 | this list of conditions and the following disclaimer in the documentation
14 | and/or other materials provided with the distribution.
15 |
16 | * Neither the name of the copyright holder nor the names of its
17 | contributors may be used to endorse or promote products derived from
18 | this software without specific prior written permission.
19 |
20 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
23 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
24 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
26 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
27 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
28 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # 『Pythonで理解する統計解析の基礎』のサポートページ
2 |
3 | 谷合廣紀 著、辻真吾 監修
4 | B5変/320ページ/本体価格2,980円+税
5 | ISBN978-4297100490
6 | 技術評論社、2018年発行
7 |
8 | ## サンプルコード
9 |
10 | - notebook: 本文中に掲載されているコードが書かれたnotebook
11 | - animation: 本文中に
と記載されているインタラクティブに操作できたりアニメーションを再生できるコードが書かれたnotebook
12 | - data: 本文中で使うデータ
13 |
14 | ## Pythonとライブラリのインストール方法
15 |
16 | インストール方法はOSごとに次を参考にしてください。
17 |
18 | - [Windows10](https://github.com/ghmagazine/python_stat_sample/blob/master/tutorial/env_const/windows10.md)
19 | - [MacOS](https://github.com/ghmagazine/python_stat_sample/blob/master/tutorial/env_const/macos.md)
20 | - [Ubuntu16](https://github.com/ghmagazine/python_stat_sample/blob/master/tutorial/env_const/ubuntu16.md)
21 |
22 | ## Pythonとライブラリの基本
23 |
24 | Pythonの使い方を学ぶための簡単なnotebookを用意してあります。
25 |
26 | - [Pythonの基本](https://github.com/ghmagazine/python_stat_sample/blob/master/tutorial/python.ipynb)
27 | - [NumPyの使い方](https://github.com/ghmagazine/python_stat_sample/blob/master/tutorial/numpy.ipynb)
28 | - [Pandasの使い方](https://github.com/ghmagazine/python_stat_sample/blob/master/tutorial/pandas.ipynb)
29 |
30 |
31 | まったくのプログラミング初心者の方は、これらのnotebookだけで理解するのは大変だと思います。
32 | そのような方は
33 | [Pythonスタートブック](http://gihyo.jp/book/2018/978-4-7741-9643-5)で勉強することをおすすめします。
34 |
--------------------------------------------------------------------------------
/animation/None0000000.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ghmagazine/python_stat_sample/0692d39343caaf726b556abb0a8511fc064acd6c/animation/None0000000.png
--------------------------------------------------------------------------------
/animation/chap02_anim.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "markdown",
5 | "metadata": {},
6 | "source": [
7 | "# 1次元のデータの整理"
8 | ]
9 | },
10 | {
11 | "cell_type": "code",
12 | "execution_count": 1,
13 | "metadata": {
14 | "ExecuteTime": {
15 | "end_time": "2018-08-25T12:19:13.669518Z",
16 | "start_time": "2018-08-25T12:19:13.396314Z"
17 | }
18 | },
19 | "outputs": [],
20 | "source": [
21 | "import numpy as np\n",
22 | "import pandas as pd\n",
23 | "import matplotlib.pyplot as plt\n",
24 | "from plot_util import plot_var_interact, plot_std_interact\n",
25 | "\n",
26 | "pd.set_option('precision', 3)\n",
27 | "%precision 3\n",
28 | "%matplotlib inline"
29 | ]
30 | },
31 | {
32 | "cell_type": "code",
33 | "execution_count": 2,
34 | "metadata": {
35 | "ExecuteTime": {
36 | "end_time": "2018-08-25T12:19:13.677428Z",
37 | "start_time": "2018-08-25T12:19:13.670616Z"
38 | }
39 | },
40 | "outputs": [],
41 | "source": [
42 | "df = pd.read_csv('../data/ch2_scores_em.csv', index_col='生徒番号')\n",
43 | "scores = np.array(df['英語'])[:10]"
44 | ]
45 | },
46 | {
47 | "cell_type": "markdown",
48 | "metadata": {},
49 | "source": [
50 | "## 図2.3 分散"
51 | ]
52 | },
53 | {
54 | "cell_type": "code",
55 | "execution_count": 3,
56 | "metadata": {
57 | "ExecuteTime": {
58 | "end_time": "2018-08-25T12:19:14.136831Z",
59 | "start_time": "2018-08-25T12:19:13.678658Z"
60 | }
61 | },
62 | "outputs": [
63 | {
64 | "data": {
65 | "application/vnd.jupyter.widget-view+json": {
66 | "model_id": "fdd83cccee644a6294cabeb876468bc0",
67 | "version_major": 2,
68 | "version_minor": 0
69 | },
70 | "text/plain": [
71 | "interactive(children=(IntSlider(value=42, description='A', min=1), IntSlider(value=69, description='B', min=1)…"
72 | ]
73 | },
74 | "metadata": {},
75 | "output_type": "display_data"
76 | }
77 | ],
78 | "source": [
79 | "plot_var_interact(scores[:4])"
80 | ]
81 | },
82 | {
83 | "cell_type": "markdown",
84 | "metadata": {},
85 | "source": [
86 | "## 図2.4 標準偏差"
87 | ]
88 | },
89 | {
90 | "cell_type": "code",
91 | "execution_count": 4,
92 | "metadata": {
93 | "ExecuteTime": {
94 | "end_time": "2018-08-25T12:19:14.399234Z",
95 | "start_time": "2018-08-25T12:19:14.138148Z"
96 | }
97 | },
98 | "outputs": [
99 | {
100 | "data": {
101 | "application/vnd.jupyter.widget-view+json": {
102 | "model_id": "c96eb7c0f70a4869a2469d17a8db203a",
103 | "version_major": 2,
104 | "version_minor": 0
105 | },
106 | "text/plain": [
107 | "interactive(children=(IntSlider(value=42, description='A', min=1), IntSlider(value=69, description='B', min=1)…"
108 | ]
109 | },
110 | "metadata": {},
111 | "output_type": "display_data"
112 | }
113 | ],
114 | "source": [
115 | "plot_std_interact(scores)"
116 | ]
117 | },
118 | {
119 | "cell_type": "code",
120 | "execution_count": null,
121 | "metadata": {},
122 | "outputs": [],
123 | "source": []
124 | }
125 | ],
126 | "metadata": {
127 | "kernelspec": {
128 | "display_name": "Python 3",
129 | "language": "python",
130 | "name": "python3"
131 | },
132 | "language_info": {
133 | "codemirror_mode": {
134 | "name": "ipython",
135 | "version": 3
136 | },
137 | "file_extension": ".py",
138 | "mimetype": "text/x-python",
139 | "name": "python",
140 | "nbconvert_exporter": "python",
141 | "pygments_lexer": "ipython3",
142 | "version": "3.6.5"
143 | },
144 | "toc": {
145 | "nav_menu": {},
146 | "number_sections": true,
147 | "sideBar": true,
148 | "skip_h1_title": false,
149 | "toc_cell": false,
150 | "toc_position": {},
151 | "toc_section_display": "block",
152 | "toc_window_display": false
153 | },
154 | "varInspector": {
155 | "cols": {
156 | "lenName": 16,
157 | "lenType": 16,
158 | "lenVar": 40
159 | },
160 | "kernels_config": {
161 | "python": {
162 | "delete_cmd_postfix": "",
163 | "delete_cmd_prefix": "del ",
164 | "library": "var_list.py",
165 | "varRefreshCmd": "print(var_dic_list())"
166 | },
167 | "r": {
168 | "delete_cmd_postfix": ") ",
169 | "delete_cmd_prefix": "rm(",
170 | "library": "var_list.r",
171 | "varRefreshCmd": "cat(var_dic_list()) "
172 | }
173 | },
174 | "types_to_exclude": [
175 | "module",
176 | "function",
177 | "builtin_function_or_method",
178 | "instance",
179 | "_Feature"
180 | ],
181 | "window_display": false
182 | }
183 | },
184 | "nbformat": 4,
185 | "nbformat_minor": 2
186 | }
187 |
--------------------------------------------------------------------------------
/animation/chap03_anim.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "markdown",
5 | "metadata": {},
6 | "source": [
7 | "# 2次元データの整理"
8 | ]
9 | },
10 | {
11 | "cell_type": "code",
12 | "execution_count": 1,
13 | "metadata": {
14 | "ExecuteTime": {
15 | "end_time": "2018-08-25T12:19:21.763316Z",
16 | "start_time": "2018-08-25T12:19:21.521774Z"
17 | }
18 | },
19 | "outputs": [],
20 | "source": [
21 | "import numpy as np\n",
22 | "import pandas as pd\n",
23 | "import matplotlib.pyplot as plt\n",
24 | "from plot_util import plot_cov_interact\n",
25 | "\n",
26 | "%precision 3\n",
27 | "%matplotlib inline"
28 | ]
29 | },
30 | {
31 | "cell_type": "code",
32 | "execution_count": 2,
33 | "metadata": {
34 | "ExecuteTime": {
35 | "end_time": "2018-08-25T12:19:21.772456Z",
36 | "start_time": "2018-08-25T12:19:21.764638Z"
37 | }
38 | },
39 | "outputs": [],
40 | "source": [
41 | "df = pd.read_csv('../data/ch2_scores_em.csv',\n",
42 | " index_col='生徒番号')\n",
43 | "en_scores = np.array(df['英語'])[:10]\n",
44 | "ma_scores = np.array(df['数学'])[:10]"
45 | ]
46 | },
47 | {
48 | "cell_type": "markdown",
49 | "metadata": {},
50 | "source": [
51 | "## 図3.2 点数の散布図と符号付き面積"
52 | ]
53 | },
54 | {
55 | "cell_type": "code",
56 | "execution_count": 3,
57 | "metadata": {
58 | "ExecuteTime": {
59 | "end_time": "2018-08-25T12:19:22.196660Z",
60 | "start_time": "2018-08-25T12:19:21.773941Z"
61 | }
62 | },
63 | "outputs": [
64 | {
65 | "data": {
66 | "application/vnd.jupyter.widget-view+json": {
67 | "model_id": "a76aecb0e77e4201aea0338e485bb750",
68 | "version_major": 2,
69 | "version_minor": 0
70 | },
71 | "text/plain": [
72 | "interactive(children=(IntSlider(value=42, description='Aさんの英語'), IntSlider(value=65, description='Aさんの数学'), In…"
73 | ]
74 | },
75 | "metadata": {},
76 | "output_type": "display_data"
77 | }
78 | ],
79 | "source": [
80 | "plot_cov_interact(en_scores, ma_scores)"
81 | ]
82 | },
83 | {
84 | "cell_type": "code",
85 | "execution_count": null,
86 | "metadata": {},
87 | "outputs": [],
88 | "source": []
89 | }
90 | ],
91 | "metadata": {
92 | "kernelspec": {
93 | "display_name": "Python 3",
94 | "language": "python",
95 | "name": "python3"
96 | },
97 | "language_info": {
98 | "codemirror_mode": {
99 | "name": "ipython",
100 | "version": 3
101 | },
102 | "file_extension": ".py",
103 | "mimetype": "text/x-python",
104 | "name": "python",
105 | "nbconvert_exporter": "python",
106 | "pygments_lexer": "ipython3",
107 | "version": "3.6.5"
108 | },
109 | "toc": {
110 | "nav_menu": {},
111 | "number_sections": true,
112 | "sideBar": true,
113 | "skip_h1_title": false,
114 | "toc_cell": false,
115 | "toc_position": {},
116 | "toc_section_display": "block",
117 | "toc_window_display": false
118 | },
119 | "varInspector": {
120 | "cols": {
121 | "lenName": 16,
122 | "lenType": 16,
123 | "lenVar": 40
124 | },
125 | "kernels_config": {
126 | "python": {
127 | "delete_cmd_postfix": "",
128 | "delete_cmd_prefix": "del ",
129 | "library": "var_list.py",
130 | "varRefreshCmd": "print(var_dic_list())"
131 | },
132 | "r": {
133 | "delete_cmd_postfix": ") ",
134 | "delete_cmd_prefix": "rm(",
135 | "library": "var_list.r",
136 | "varRefreshCmd": "cat(var_dic_list()) "
137 | }
138 | },
139 | "types_to_exclude": [
140 | "module",
141 | "function",
142 | "builtin_function_or_method",
143 | "instance",
144 | "_Feature"
145 | ],
146 | "window_display": false
147 | }
148 | },
149 | "nbformat": 4,
150 | "nbformat_minor": 2
151 | }
152 |
--------------------------------------------------------------------------------
/animation/chap06_anim.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "markdown",
5 | "metadata": {},
6 | "source": [
7 | "# 代表的な離散型確率分布"
8 | ]
9 | },
10 | {
11 | "cell_type": "code",
12 | "execution_count": 1,
13 | "metadata": {
14 | "ExecuteTime": {
15 | "end_time": "2018-08-25T12:19:40.296123Z",
16 | "start_time": "2018-08-25T12:19:39.750199Z"
17 | }
18 | },
19 | "outputs": [],
20 | "source": [
21 | "import numpy as np\n",
22 | "import matplotlib.pyplot as plt\n",
23 | "from scipy import stats\n",
24 | "from ipywidgets import interact\n",
25 | "\n",
26 | "%precision 3\n",
27 | "%matplotlib inline"
28 | ]
29 | },
30 | {
31 | "cell_type": "markdown",
32 | "metadata": {},
33 | "source": [
34 | "## 図6.3: さまざまな二項分布"
35 | ]
36 | },
37 | {
38 | "cell_type": "code",
39 | "execution_count": 2,
40 | "metadata": {
41 | "ExecuteTime": {
42 | "end_time": "2018-08-25T12:19:40.480057Z",
43 | "start_time": "2018-08-25T12:19:40.297687Z"
44 | }
45 | },
46 | "outputs": [
47 | {
48 | "data": {
49 | "application/vnd.jupyter.widget-view+json": {
50 | "model_id": "8f306137b67d4a5985888d3a286f2790",
51 | "version_major": 2,
52 | "version_minor": 0
53 | },
54 | "text/plain": [
55 | "interactive(children=(IntSlider(value=10, description='n', max=20, min=1), FloatSlider(value=0.4, description=…"
56 | ]
57 | },
58 | "metadata": {},
59 | "output_type": "display_data"
60 | }
61 | ],
62 | "source": [
63 | "@interact(n=(1, 20, 1), p=(0.1, 0.9, 0.1))\n",
64 | "def Bin(n=10, p=0.4):\n",
65 | " fig = plt.figure(figsize=(10, 6))\n",
66 | " ax = fig.add_subplot(111)\n",
67 | " rv = stats.binom(n, p)\n",
68 | " x_set = np.arange(n+1)\n",
69 | " ax.plot(x_set, rv.pmf(x_set))\n",
70 | " ax.set_xticks(np.arange(21))\n",
71 | " ax.set_ylim(-0.02, 1)\n",
72 | " plt.show()"
73 | ]
74 | },
75 | {
76 | "cell_type": "markdown",
77 | "metadata": {},
78 | "source": [
79 | "## 図6.5: さまざまな幾何分布"
80 | ]
81 | },
82 | {
83 | "cell_type": "code",
84 | "execution_count": 3,
85 | "metadata": {
86 | "ExecuteTime": {
87 | "end_time": "2018-08-25T12:19:40.610355Z",
88 | "start_time": "2018-08-25T12:19:40.481347Z"
89 | }
90 | },
91 | "outputs": [
92 | {
93 | "data": {
94 | "application/vnd.jupyter.widget-view+json": {
95 | "model_id": "a31d3260c255464a9712fd899213cc52",
96 | "version_major": 2,
97 | "version_minor": 0
98 | },
99 | "text/plain": [
100 | "interactive(children=(FloatSlider(value=0.5, description='p', max=0.9, min=0.1), Output()), _dom_classes=('wid…"
101 | ]
102 | },
103 | "metadata": {},
104 | "output_type": "display_data"
105 | }
106 | ],
107 | "source": [
108 | "@interact(p=(0.1, 0.9, 0.1))\n",
109 | "def Ge(p=0.5):\n",
110 | " x_set = np.arange(1, 15)\n",
111 | " fig = plt.figure(figsize=(10, 6))\n",
112 | " ax = fig.add_subplot(111)\n",
113 | " rv = stats.geom(p)\n",
114 | " ax.plot(x_set, rv.pmf(x_set))\n",
115 | " ax.set_xticks(x_set)\n",
116 | " ax.set_ylim(-0.02, 1.02)\n",
117 | " plt.show()"
118 | ]
119 | },
120 | {
121 | "cell_type": "markdown",
122 | "metadata": {},
123 | "source": [
124 | "## 図6.7 さまざまなポアソン分布"
125 | ]
126 | },
127 | {
128 | "cell_type": "code",
129 | "execution_count": 4,
130 | "metadata": {
131 | "ExecuteTime": {
132 | "end_time": "2018-08-25T12:19:40.754874Z",
133 | "start_time": "2018-08-25T12:19:40.611709Z"
134 | }
135 | },
136 | "outputs": [
137 | {
138 | "data": {
139 | "application/vnd.jupyter.widget-view+json": {
140 | "model_id": "690a98fc5c72471a8dcd4f1691b5d304",
141 | "version_major": 2,
142 | "version_minor": 0
143 | },
144 | "text/plain": [
145 | "interactive(children=(IntSlider(value=8, description='l', max=15, min=1), Output()), _dom_classes=('widget-int…"
146 | ]
147 | },
148 | "metadata": {},
149 | "output_type": "display_data"
150 | }
151 | ],
152 | "source": [
153 | "@interact(l=(1, 15, 1))\n",
154 | "def Poi(l=8):\n",
155 | " x_set = np.arange(21)\n",
156 | " fig = plt.figure(figsize=(10, 6))\n",
157 | " ax = fig.add_subplot(111)\n",
158 | " rv = stats.poisson(l)\n",
159 | " ax.plot(x_set, rv.pmf(x_set))\n",
160 | " ax.set_xticks(x_set)\n",
161 | " ax.set_ylim(-0.02, 0.4)\n",
162 | " plt.show()"
163 | ]
164 | },
165 | {
166 | "cell_type": "code",
167 | "execution_count": null,
168 | "metadata": {},
169 | "outputs": [],
170 | "source": []
171 | }
172 | ],
173 | "metadata": {
174 | "kernelspec": {
175 | "display_name": "Python 3",
176 | "language": "python",
177 | "name": "python3"
178 | },
179 | "language_info": {
180 | "codemirror_mode": {
181 | "name": "ipython",
182 | "version": 3
183 | },
184 | "file_extension": ".py",
185 | "mimetype": "text/x-python",
186 | "name": "python",
187 | "nbconvert_exporter": "python",
188 | "pygments_lexer": "ipython3",
189 | "version": "3.6.5"
190 | },
191 | "toc": {
192 | "nav_menu": {},
193 | "number_sections": true,
194 | "sideBar": true,
195 | "skip_h1_title": false,
196 | "toc_cell": false,
197 | "toc_position": {},
198 | "toc_section_display": "block",
199 | "toc_window_display": false
200 | },
201 | "varInspector": {
202 | "cols": {
203 | "lenName": 16,
204 | "lenType": 16,
205 | "lenVar": 40
206 | },
207 | "kernels_config": {
208 | "python": {
209 | "delete_cmd_postfix": "",
210 | "delete_cmd_prefix": "del ",
211 | "library": "var_list.py",
212 | "varRefreshCmd": "print(var_dic_list())"
213 | },
214 | "r": {
215 | "delete_cmd_postfix": ") ",
216 | "delete_cmd_prefix": "rm(",
217 | "library": "var_list.r",
218 | "varRefreshCmd": "cat(var_dic_list()) "
219 | }
220 | },
221 | "types_to_exclude": [
222 | "module",
223 | "function",
224 | "builtin_function_or_method",
225 | "instance",
226 | "_Feature"
227 | ],
228 | "window_display": false
229 | }
230 | },
231 | "nbformat": 4,
232 | "nbformat_minor": 2
233 | }
234 |
--------------------------------------------------------------------------------
/animation/chap08_anim.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "markdown",
5 | "metadata": {},
6 | "source": [
7 | "# 代表的な連続型確率分布"
8 | ]
9 | },
10 | {
11 | "cell_type": "code",
12 | "execution_count": 1,
13 | "metadata": {
14 | "ExecuteTime": {
15 | "end_time": "2018-08-25T12:19:47.490143Z",
16 | "start_time": "2018-08-25T12:19:47.161901Z"
17 | }
18 | },
19 | "outputs": [],
20 | "source": [
21 | "import numpy as np\n",
22 | "import matplotlib.pyplot as plt\n",
23 | "from scipy import stats, integrate\n",
24 | "from scipy.optimize import minimize_scalar\n",
25 | "from ipywidgets import interact\n",
26 | "\n",
27 | "%precision 3\n",
28 | "%matplotlib inline"
29 | ]
30 | },
31 | {
32 | "cell_type": "markdown",
33 | "metadata": {},
34 | "source": [
35 | "## 図8.5 さまざまな正規分布"
36 | ]
37 | },
38 | {
39 | "cell_type": "code",
40 | "execution_count": 2,
41 | "metadata": {
42 | "ExecuteTime": {
43 | "end_time": "2018-08-25T12:19:47.609264Z",
44 | "start_time": "2018-08-25T12:19:47.491369Z"
45 | }
46 | },
47 | "outputs": [
48 | {
49 | "data": {
50 | "application/vnd.jupyter.widget-view+json": {
51 | "model_id": "28cd0d5f2b074df888f7400328dd686b",
52 | "version_major": 2,
53 | "version_minor": 0
54 | },
55 | "text/plain": [
56 | "interactive(children=(FloatSlider(value=0.0, description='mean', max=3.0, min=-3.0), FloatSlider(value=1.0, de…"
57 | ]
58 | },
59 | "metadata": {},
60 | "output_type": "display_data"
61 | }
62 | ],
63 | "source": [
64 | "@interact(mean=(-3, 3, 0.1), sigma=(0.1, 10.0, 0.1))\n",
65 | "def N(mean=0, sigma=1):\n",
66 | " xs = np.linspace(-6, 6, 1000)\n",
67 | " fig = plt.figure(figsize=(10, 6))\n",
68 | " ax = fig.add_subplot(111)\n",
69 | " rv = stats.norm(mean, sigma)\n",
70 | " ax.plot(xs, rv.pdf(xs))\n",
71 | " ax.set_xlim(-6, 6)\n",
72 | " ax.set_ylim(-0.02, 3)\n",
73 | " plt.show()"
74 | ]
75 | },
76 | {
77 | "cell_type": "markdown",
78 | "metadata": {},
79 | "source": [
80 | "## 図8.7 さまざまな指数分布"
81 | ]
82 | },
83 | {
84 | "cell_type": "code",
85 | "execution_count": 3,
86 | "metadata": {
87 | "ExecuteTime": {
88 | "end_time": "2018-08-25T12:19:47.754158Z",
89 | "start_time": "2018-08-25T12:19:47.610669Z"
90 | }
91 | },
92 | "outputs": [
93 | {
94 | "data": {
95 | "application/vnd.jupyter.widget-view+json": {
96 | "model_id": "8f007c47aa454213879e0943c0019a60",
97 | "version_major": 2,
98 | "version_minor": 0
99 | },
100 | "text/plain": [
101 | "interactive(children=(FloatSlider(value=0.1, description='l', max=5.0, min=0.1), Output()), _dom_classes=('wid…"
102 | ]
103 | },
104 | "metadata": {},
105 | "output_type": "display_data"
106 | }
107 | ],
108 | "source": [
109 | "@interact(l=(0.1, 5, 0.1))\n",
110 | "def Ex(l=0.1):\n",
111 | " xs = np.linspace(0, 2, 100)\n",
112 | " fig = plt.figure(figsize=(10, 6))\n",
113 | " ax = fig.add_subplot(111)\n",
114 | " rv = stats.expon(scale=1/l)\n",
115 | " ax.plot(xs, rv.pdf(xs))\n",
116 | " ax.set_xlim(-0.02, 2)\n",
117 | " ax.set_ylim(-0.02, 5)\n",
118 | " plt.show()"
119 | ]
120 | },
121 | {
122 | "cell_type": "markdown",
123 | "metadata": {},
124 | "source": [
125 | "## 図8.9 さまざまなカイ二乗分布"
126 | ]
127 | },
128 | {
129 | "cell_type": "code",
130 | "execution_count": 4,
131 | "metadata": {
132 | "ExecuteTime": {
133 | "end_time": "2018-08-25T12:19:47.902488Z",
134 | "start_time": "2018-08-25T12:19:47.755763Z"
135 | }
136 | },
137 | "outputs": [
138 | {
139 | "data": {
140 | "application/vnd.jupyter.widget-view+json": {
141 | "model_id": "a98a52a190f946c7ae95e4f44ab459b7",
142 | "version_major": 2,
143 | "version_minor": 0
144 | },
145 | "text/plain": [
146 | "interactive(children=(IntSlider(value=1, description='n', max=20, min=1), Output()), _dom_classes=('widget-int…"
147 | ]
148 | },
149 | "metadata": {},
150 | "output_type": "display_data"
151 | }
152 | ],
153 | "source": [
154 | "@interact(n=(1, 20, 1))\n",
155 | "def chi2(n=1):\n",
156 | " xs = np.linspace(0, 20, 1000)\n",
157 | " fig = plt.figure(figsize=(10, 6))\n",
158 | " ax = fig.add_subplot(111)\n",
159 | " rv = stats.chi2(n)\n",
160 | " ax.plot(xs, rv.pdf(xs))\n",
161 | " ax.set_xlim(-0.02, 20)\n",
162 | " ax.set_ylim(-0.02, 1)\n",
163 | " plt.show()"
164 | ]
165 | },
166 | {
167 | "cell_type": "markdown",
168 | "metadata": {},
169 | "source": [
170 | "## 図8.11 さまざまなt分布"
171 | ]
172 | },
173 | {
174 | "cell_type": "code",
175 | "execution_count": 5,
176 | "metadata": {
177 | "ExecuteTime": {
178 | "end_time": "2018-08-25T12:19:48.084112Z",
179 | "start_time": "2018-08-25T12:19:47.904153Z"
180 | }
181 | },
182 | "outputs": [
183 | {
184 | "data": {
185 | "application/vnd.jupyter.widget-view+json": {
186 | "model_id": "80c3aec10d7a488bae451782aac92bc2",
187 | "version_major": 2,
188 | "version_minor": 0
189 | },
190 | "text/plain": [
191 | "interactive(children=(IntSlider(value=1, description='n', max=30, min=1), Output()), _dom_classes=('widget-int…"
192 | ]
193 | },
194 | "metadata": {},
195 | "output_type": "display_data"
196 | }
197 | ],
198 | "source": [
199 | "@interact(n=(1, 30, 1))\n",
200 | "def t(n=1):\n",
201 | " xs = np.linspace(-3, 3, 100)\n",
202 | " fig = plt.figure(figsize=(10, 6))\n",
203 | " ax = fig.add_subplot(111)\n",
204 | " rv = stats.t(n)\n",
205 | " ax.plot(xs, rv.pdf(xs), label='t')\n",
206 | " rv = stats.norm(loc=0, scale=1)\n",
207 | " ax.plot(xs, rv.pdf(xs), 'k', label='N(0, 1)')\n",
208 | " ax.set_ylim(-0.02, 0.5)\n",
209 | " ax.legend()\n",
210 | " plt.show()"
211 | ]
212 | },
213 | {
214 | "cell_type": "markdown",
215 | "metadata": {},
216 | "source": [
217 | "## 図8.13 さまざまなF分布"
218 | ]
219 | },
220 | {
221 | "cell_type": "code",
222 | "execution_count": 6,
223 | "metadata": {
224 | "ExecuteTime": {
225 | "end_time": "2018-08-25T12:19:48.206526Z",
226 | "start_time": "2018-08-25T12:19:48.085227Z"
227 | }
228 | },
229 | "outputs": [
230 | {
231 | "data": {
232 | "application/vnd.jupyter.widget-view+json": {
233 | "model_id": "c2530dd2abc04c7ea46c28fdad8f7465",
234 | "version_major": 2,
235 | "version_minor": 0
236 | },
237 | "text/plain": [
238 | "interactive(children=(IntSlider(value=5, description='n1', max=10, min=1), IntSlider(value=5, description='n2'…"
239 | ]
240 | },
241 | "metadata": {},
242 | "output_type": "display_data"
243 | }
244 | ],
245 | "source": [
246 | "@interact(n1=(1, 10, 1), n2=(1, 10, 1))\n",
247 | "def f(n1=5, n2=5):\n",
248 | " xs = np.linspace(0, 6, 200)[1:]\n",
249 | " fig = plt.figure(figsize=(10, 6))\n",
250 | " ax = fig.add_subplot(111)\n",
251 | " rv = stats.f(n1, n2)\n",
252 | " ax.plot(xs, rv.pdf(xs))\n",
253 | " ax.set_xlim(-0.02, 6)\n",
254 | " ax.set_ylim(-0.02, 1)\n",
255 | " plt.show()"
256 | ]
257 | },
258 | {
259 | "cell_type": "code",
260 | "execution_count": null,
261 | "metadata": {},
262 | "outputs": [],
263 | "source": []
264 | }
265 | ],
266 | "metadata": {
267 | "kernelspec": {
268 | "display_name": "Python 3",
269 | "language": "python",
270 | "name": "python3"
271 | },
272 | "language_info": {
273 | "codemirror_mode": {
274 | "name": "ipython",
275 | "version": 3
276 | },
277 | "file_extension": ".py",
278 | "mimetype": "text/x-python",
279 | "name": "python",
280 | "nbconvert_exporter": "python",
281 | "pygments_lexer": "ipython3",
282 | "version": "3.6.5"
283 | },
284 | "toc": {
285 | "nav_menu": {},
286 | "number_sections": true,
287 | "sideBar": true,
288 | "skip_h1_title": false,
289 | "toc_cell": false,
290 | "toc_position": {},
291 | "toc_section_display": "block",
292 | "toc_window_display": false
293 | },
294 | "varInspector": {
295 | "cols": {
296 | "lenName": 16,
297 | "lenType": 16,
298 | "lenVar": 40
299 | },
300 | "kernels_config": {
301 | "python": {
302 | "delete_cmd_postfix": "",
303 | "delete_cmd_prefix": "del ",
304 | "library": "var_list.py",
305 | "varRefreshCmd": "print(var_dic_list())"
306 | },
307 | "r": {
308 | "delete_cmd_postfix": ") ",
309 | "delete_cmd_prefix": "rm(",
310 | "library": "var_list.r",
311 | "varRefreshCmd": "cat(var_dic_list()) "
312 | }
313 | },
314 | "types_to_exclude": [
315 | "module",
316 | "function",
317 | "builtin_function_or_method",
318 | "instance",
319 | "_Feature"
320 | ],
321 | "window_display": false
322 | }
323 | },
324 | "nbformat": 4,
325 | "nbformat_minor": 2
326 | }
327 |
--------------------------------------------------------------------------------
/animation/plot_util.py:
--------------------------------------------------------------------------------
1 | import numpy as np
2 | import pandas as pd
3 | import matplotlib.pyplot as plt
4 | import matplotlib.patches as patches
5 | from matplotlib.ticker import MultipleLocator
6 | from ipywidgets import interact
7 | from itertools import chain
8 |
9 |
10 | def plot_dev(scores, x_range=None):
11 | if x_range is None:
12 | x_range = (np.min(scores) - 3, np.min((np.max(scores) + 3, 100)))
13 | y_range = (-0.5, 10 * 0.5 + 0.5)
14 | heights = (np.arange(10) * 0.5 + 0.5)[::-1]
15 | mean = np.mean(scores)
16 |
17 | fig = plt.figure(figsize=(15, 6))
18 | ax = fig.add_subplot(111)
19 | ax.grid(False)
20 |
21 | ax.hlines(0, *x_range, linewidths=1)
22 | ax.hlines(heights, mean, scores, linewidths=1, color='c', alpha=0.7)
23 |
24 | ax.vlines(scores, 0.27, y_range[1], linestyle='--', linewidths=1)
25 | ax.vlines(mean, 0, y_range[1], linewidths=2, alpha=0.5)
26 |
27 | ax.scatter(scores, [0]*len(scores), s=30, color='gray', zorder=9)
28 | ax.scatter(mean, 0, s=80, color='b', zorder=9)
29 |
30 | names = ['A', 'B', 'C', 'D', 'E',
31 | 'F', 'G', 'H', 'I', 'J']
32 | for score, name in zip(scores, names):
33 | ax.text(score, 0.15, name, ha='center', va='center', size=16, zorder=9)
34 |
35 | ax.set_xlim(*x_range)
36 | ax.set_ylim(*y_range)
37 | ax.set_xticks(np.arange(*x_range), minor=True)
38 | ax.set_yticks([])
39 | ax.set_xlabel('点数', fontsize=16)
40 |
41 | plt.show()
42 |
43 |
44 | def plot_var_interact(scores):
45 | scores = scores[:4]
46 | majorLocator = MultipleLocator(5)
47 | minorLocator = MultipleLocator(1)
48 |
49 | @interact(A=(1, 100, 1), B=(1, 100, 1),
50 | C=(1, 100, 1), D=(1, 100, 1))
51 | def plot(A=scores[0], B=scores[1],
52 | C=scores[2], D=scores[3]):
53 | fig = plt.figure(figsize=(10, 10))
54 | ax = fig.add_subplot(111)
55 | ax.grid(False)
56 |
57 | scores = [A, B, C, D]
58 | names = ['A', 'B', 'C', 'D']
59 | mean = np.mean(scores)
60 | std = np.std(scores)
61 |
62 | for score, name in zip(scores, names):
63 | ax.text(score, score, name, ha='center', va='center', size=16)
64 |
65 | ax.hlines(mean, 0, 100, alpha=0.3)
66 | ax.vlines(mean, 0, 100, alpha=0.3)
67 |
68 | for dev in scores-mean:
69 | ax.add_patch(patches.Rectangle((mean, mean), dev, dev,
70 | alpha=0.3, color='gray'))
71 | ax.add_patch(patches.Rectangle((mean-std/2, mean-std/2), std, std,
72 | alpha=0.5, color='c'))
73 |
74 | ax.set_xlim(0, 100)
75 | ax.set_ylim(0, 100)
76 | ax.set_xlabel('点数', fontsize=16)
77 | ax.set_ylabel('点数', fontsize=16)
78 |
79 | ax.xaxis.set_major_locator(MultipleLocator(5))
80 | ax.xaxis.set_minor_locator(MultipleLocator(1))
81 | ax.yaxis.set_major_locator(MultipleLocator(5))
82 | ax.yaxis.set_minor_locator(MultipleLocator(1))
83 |
84 | plt.show()
85 |
86 |
87 | def plot_std_interact(scores):
88 | x_range = (0, 100)
89 | y_range = (-0.5, 10 * 0.5 + 0.5)
90 | heights = (np.arange(10) * 0.5 + 0.5)[::-1]
91 |
92 | @interact(A=(1, 100, 1), B=(1, 100, 1),
93 | C=(1, 100, 1), D=(1, 100, 1),
94 | E=(1, 100, 1), F=(1, 100, 1),
95 | G=(1, 100, 1), H=(1, 100, 1),
96 | I=(1, 100, 1), J=(1, 100, 1))
97 | def plot(A=scores[0], B=scores[1],
98 | C=scores[2], D=scores[3],
99 | E=scores[4], F=scores[5],
100 | G=scores[6], H=scores[7],
101 | I=scores[8], J=scores[9]):
102 | fig = plt.figure(figsize=(15, 6))
103 | ax = fig.add_subplot(111)
104 | ax.grid(False)
105 |
106 | scores = [A, B, C, D, E,
107 | F, G, H, I, J]
108 | names = ['A', 'B', 'C', 'D', 'E',
109 | 'F', 'G', 'H', 'I', 'J']
110 | mean = np.mean(scores)
111 | std = np.std(scores)
112 |
113 | ax.hlines(0, *x_range, linewidths=1)
114 | ax.hlines(heights, mean, scores, linewidths=1, color='c', alpha=0.7)
115 |
116 | ax.vlines(scores, 0.27, y_range[1], linestyle='--', linewidths=1)
117 | ax.vlines(mean, 0, y_range[1], linewidths=2, alpha=0.5)
118 |
119 | ax.scatter(scores, [0]*len(scores), s=30, color='gray', zorder=9)
120 | ax.scatter(mean, 0, s=80, color='b', zorder=9)
121 |
122 | for score, name in zip(scores, names):
123 | ax.text(score, 0.15, name, ha='center', va='center', size=16, zorder=9)
124 |
125 | ax.add_patch(patches.Rectangle((mean-std/2, 0), std, -0.5, color='c'))
126 | ax.add_patch(patches.Rectangle((mean-std, 0), 2*std, -0.5,
127 | alpha=0.5, color='c'))
128 | ax.add_patch(patches.Rectangle((mean-std*3/2, 0), 3*std, -0.5,
129 | alpha=0.3, color='c'))
130 |
131 | ax.set_xlim(*x_range)
132 | ax.set_ylim(*y_range)
133 | ax.set_xticks(np.arange(*x_range), minor=True)
134 | ax.set_yticks([])
135 | ax.set_xlabel('点数', fontsize=16)
136 |
137 | plt.show()
138 |
139 |
140 | def plot_cov(en_scores, ma_scores, plot_squares=False):
141 | x_range = (np.min(en_scores) - 3, np.min((np.max(en_scores) + 3, 100)))
142 | y_range = (np.min(ma_scores) - 3, np.min((np.max(ma_scores) + 3, 100)))
143 |
144 | fig = plt.figure(figsize=(10, 10))
145 | ax = fig.add_subplot(111)
146 | ax.grid(False)
147 |
148 | en_mean = np.mean(en_scores)
149 | ma_mean = np.mean(ma_scores)
150 |
151 | names = ['A', 'B', 'C', 'D', 'E',
152 | 'F', 'G', 'H', 'I', 'J']
153 | for en_score, ma_score, name in zip(en_scores, ma_scores, names):
154 | ax.text(en_score, ma_score, name, ha='center', va='center', size=16)
155 |
156 | if plot_squares:
157 | plt_idx = [2, 4, 7]
158 | colors = ['gray' if (en_score - en_mean) * (ma_score - ma_mean) > 0 else 'cyan'
159 | for en_score, ma_score in zip(en_scores[plt_idx], ma_scores[plt_idx])]
160 | for en_score, ma_score, color in zip(en_scores[plt_idx], ma_scores[plt_idx], colors):
161 | ax.add_patch(patches.Rectangle((en_mean, ma_mean),
162 | en_score - en_mean,
163 | ma_score - ma_mean,
164 | alpha=0.3, color=color))
165 |
166 | ax.hlines(ma_mean, 0, 100, color='gray')
167 | ax.vlines(en_mean, 0, 100, color='gray')
168 |
169 | ax.set_xlim(*x_range)
170 | ax.set_ylim(*y_range)
171 | ax.set_xlabel('英語の点数', fontsize=16)
172 | ax.set_ylabel('数学の点数', fontsize=16)
173 |
174 | ax.xaxis.set_minor_locator(MultipleLocator(1))
175 | ax.yaxis.set_minor_locator(MultipleLocator(1))
176 |
177 | plt.show()
178 |
179 |
180 | def plot_cov_interact(en_scores, ma_scores):
181 | en_scores = en_scores[:4]
182 | ma_scores = ma_scores[:4]
183 | x_range = (0, 100)
184 | y_range = (0, 100)
185 |
186 | @interact(Aさんの英語=x_range, Aさんの数学=y_range,
187 | Bさんの英語=x_range, Bさんの数学=y_range,
188 | Cさんの英語=x_range, Cさんの数学=y_range,
189 | Dさんの英語=x_range, Dさんの数学=y_range)
190 | def plot(Aさんの英語=en_scores[0], Aさんの数学=ma_scores[0],
191 | Bさんの英語=en_scores[1], Bさんの数学=ma_scores[1],
192 | Cさんの英語=en_scores[2], Cさんの数学=ma_scores[2],
193 | Dさんの英語=en_scores[3], Dさんの数学=ma_scores[3]):
194 | fig = plt.figure(figsize=(10, 10))
195 | ax = fig.add_subplot(111)
196 | ax.grid(False)
197 |
198 | names = ['A', 'B', 'C', 'D']
199 | en_scores = [Aさんの英語, Bさんの英語, Cさんの英語, Dさんの英語]
200 | ma_scores = [Aさんの数学, Bさんの数学, Cさんの数学, Dさんの数学]
201 | en_mean = np.mean(en_scores)
202 | ma_mean = np.mean(ma_scores)
203 |
204 | for en_score, ma_score, name in zip(en_scores, ma_scores, names):
205 | ax.text(en_score, ma_score, name, ha='center', va='center', size=16)
206 |
207 | ax.hlines(ma_mean, 0, 100, color='gray')
208 | ax.vlines(en_mean, 0, 100, color='gray')
209 |
210 | colors = ['gray' if (en_score - en_mean) * (ma_score - ma_mean) > 0 else 'cyan'
211 | for en_score, ma_score in zip(en_scores, ma_scores)]
212 | for en_score, ma_score, color in zip(en_scores, ma_scores, colors):
213 | ax.add_patch(patches.Rectangle((en_mean, ma_mean),
214 | en_score - en_mean,
215 | ma_score - ma_mean,
216 | alpha=0.3, color=color))
217 |
218 | ax.set_xlim(0, 100)
219 | ax.set_ylim(0, 100)
220 | ax.set_xlabel('英語の点数', fontsize=16)
221 | ax.set_ylabel('数学の点数', fontsize=16)
222 |
223 | ax.xaxis.set_major_locator(MultipleLocator(5))
224 | ax.xaxis.set_minor_locator(MultipleLocator(1))
225 | ax.yaxis.set_major_locator(MultipleLocator(5))
226 | ax.yaxis.set_minor_locator(MultipleLocator(1))
227 |
228 | plt.show()
229 |
230 |
231 | def plot_coef():
232 | np.random.seed(0)
233 | rs = [-1, -0.8, -0.5,
234 | -0.2, 0, 0.2,
235 | 0.5, 0.8, 1]
236 |
237 | fig, axes = plt.subplots(3, 3, figsize=(10, 10))
238 | for ax, r in zip(chain(*axes), rs):
239 | dt = np.random.multivariate_normal([0, 0], [[1, r], [r, 1]], 100)
240 | ax.grid(False)
241 | ax.scatter(dt[:, 0], dt[:, 1])
242 | ax.set_xticks([])
243 | ax.set_yticks([])
244 | ax.set_title(f'r={r}')
245 | plt.show()
246 |
--------------------------------------------------------------------------------
/data/ch10_access.csv:
--------------------------------------------------------------------------------
1 | アクセス数
2 | 10
3 | 11
4 | 9
5 | 9
6 | 18
7 | 13
8 | 4
9 | 10
10 | 10
11 | 8
12 | 10
13 | 11
14 | 16
15 | 9
16 | 12
17 | 12
18 | 7
19 | 8
20 | 11
21 | 7
22 | 11
23 | 10
24 | 6
25 | 11
26 | 7
27 | 13
28 | 14
29 | 12
30 | 8
31 | 8
32 | 8
33 | 11
34 | 10
35 | 8
36 | 6
37 | 8
38 | 11
39 | 13
40 | 12
41 | 7
42 | 11
43 | 9
44 | 12
45 | 13
46 | 14
47 | 14
48 | 12
49 | 17
50 | 9
51 | 12
52 | 11
53 | 6
54 | 11
55 | 11
56 | 11
57 | 15
58 | 9
59 | 13
60 | 6
61 | 6
62 | 13
63 | 9
64 | 12
65 | 12
66 | 10
67 | 7
68 | 13
69 | 12
70 | 6
71 | 11
72 | 16
73 | 10
74 |
--------------------------------------------------------------------------------
/data/ch10_enquete.csv:
--------------------------------------------------------------------------------
1 | 知っている
2 | 1
3 | 0
4 | 1
5 | 1
6 | 1
7 | 1
8 | 1
9 | 0
10 | 0
11 | 1
12 | 0
13 | 1
14 | 1
15 | 0
16 | 1
17 | 1
18 | 1
19 | 0
20 | 0
21 | 0
22 | 0
23 | 0
24 | 1
25 | 0
26 | 1
27 | 1
28 | 1
29 | 0
30 | 1
31 | 1
32 | 1
33 | 0
34 | 1
35 | 1
36 | 1
37 | 1
38 | 1
39 | 1
40 | 0
41 | 1
42 | 1
43 | 1
44 | 1
45 | 1
46 | 1
47 | 1
48 | 1
49 | 1
50 | 1
51 | 1
52 | 1
53 | 1
54 | 0
55 | 1
56 | 1
57 | 1
58 | 1
59 | 1
60 | 1
61 | 1
62 | 1
63 | 1
64 | 1
65 | 1
66 | 1
67 | 1
68 | 0
69 | 1
70 | 0
71 | 1
72 | 0
73 | 1
74 | 0
75 | 1
76 | 0
77 | 1
78 | 1
79 | 1
80 | 1
81 | 1
82 | 1
83 | 1
84 | 1
85 | 1
86 | 1
87 | 1
88 | 1
89 | 1
90 | 1
91 | 0
92 | 1
93 | 1
94 | 1
95 | 0
96 | 1
97 | 1
98 | 1
99 | 1
100 | 0
101 | 1
102 | 1
103 | 1
104 | 0
105 | 0
106 | 1
107 | 1
108 | 1
109 | 1
110 | 1
111 | 0
112 | 1
113 | 0
114 | 1
115 | 1
116 | 0
117 | 1
118 | 0
119 | 1
120 | 0
121 | 1
122 | 0
123 | 1
124 | 0
125 | 1
126 | 1
127 | 1
128 | 1
129 | 1
130 | 1
131 | 1
132 | 1
133 | 1
134 | 1
135 | 1
136 | 1
137 | 1
138 | 1
139 | 1
140 | 1
141 | 1
142 | 0
143 | 1
144 | 1
145 | 0
146 | 0
147 | 0
148 | 1
149 | 0
150 | 0
151 | 0
152 | 1
153 | 0
154 | 1
155 | 1
156 | 1
157 | 0
158 | 0
159 | 1
160 | 1
161 | 1
162 | 1
163 | 1
164 | 0
165 | 0
166 | 0
167 | 0
168 | 1
169 | 1
170 | 0
171 | 1
172 | 1
173 | 1
174 | 1
175 | 1
176 | 0
177 | 1
178 | 1
179 | 0
180 | 0
181 | 1
182 | 1
183 | 1
184 | 1
185 | 1
186 | 0
187 | 1
188 | 1
189 | 1
190 | 0
191 | 1
192 | 1
193 | 1
194 | 1
195 | 0
196 | 0
197 | 1
198 | 1
199 | 1
200 | 1
201 | 1
202 | 1
203 | 1
204 | 1
205 | 1
206 | 1
207 | 1
208 | 1
209 | 1
210 | 1
211 | 0
212 | 0
213 | 1
214 | 1
215 | 1
216 | 1
217 | 0
218 | 1
219 | 1
220 | 1
221 | 0
222 | 1
223 | 0
224 | 1
225 | 0
226 | 1
227 | 0
228 | 1
229 | 1
230 | 0
231 | 0
232 | 1
233 | 1
234 | 1
235 | 1
236 | 1
237 | 1
238 | 1
239 | 1
240 | 1
241 | 1
242 | 0
243 | 1
244 | 1
245 | 1
246 | 0
247 | 1
248 | 1
249 | 1
250 | 1
251 | 1
252 | 1
253 | 0
254 | 0
255 | 0
256 | 0
257 | 1
258 | 1
259 | 1
260 | 0
261 | 1
262 | 1
263 | 1
264 | 1
265 | 0
266 | 1
267 | 0
268 | 1
269 | 1
270 | 1
271 | 1
272 | 0
273 | 0
274 | 1
275 | 0
276 | 1
277 | 0
278 | 0
279 | 0
280 | 1
281 | 0
282 | 1
283 | 0
284 | 1
285 | 1
286 | 1
287 | 1
288 | 0
289 | 1
290 | 1
291 | 1
292 | 1
293 | 1
294 | 0
295 | 1
296 | 1
297 | 1
298 | 1
299 | 0
300 | 0
301 | 0
302 | 0
303 | 0
304 | 1
305 | 1
306 | 1
307 | 1
308 | 1
309 | 1
310 | 0
311 | 1
312 | 0
313 | 1
314 | 1
315 | 1
316 | 1
317 | 1
318 | 1
319 | 1
320 | 0
321 | 0
322 | 1
323 | 1
324 | 1
325 | 1
326 | 1
327 | 1
328 | 1
329 | 1
330 | 1
331 | 1
332 | 1
333 | 0
334 | 1
335 | 1
336 | 0
337 | 0
338 | 1
339 | 1
340 | 1
341 | 1
342 | 1
343 | 1
344 | 1
345 | 1
346 | 0
347 | 1
348 | 1
349 | 1
350 | 1
351 | 0
352 | 1
353 | 1
354 | 1
355 | 1
356 | 1
357 | 1
358 | 1
359 | 1
360 | 1
361 | 0
362 | 1
363 | 0
364 | 1
365 | 1
366 | 0
367 | 1
368 | 0
369 | 1
370 | 0
371 | 1
372 | 1
373 | 1
374 | 0
375 | 1
376 | 1
377 | 1
378 | 0
379 | 0
380 | 1
381 | 1
382 | 0
383 | 1
384 | 0
385 | 1
386 | 0
387 | 0
388 | 0
389 | 1
390 | 1
391 | 1
392 | 1
393 | 1
394 | 1
395 | 0
396 | 1
397 | 0
398 | 1
399 | 1
400 | 1
401 | 1
402 | 1
403 | 0
404 | 1
405 | 0
406 | 0
407 | 1
408 | 1
409 | 1
410 | 1
411 | 1
412 | 1
413 | 1
414 | 1
415 | 1
416 | 1
417 | 1
418 | 1
419 | 1
420 | 1
421 | 1
422 | 0
423 | 0
424 | 1
425 | 1
426 | 1
427 | 1
428 | 0
429 | 1
430 | 0
431 | 1
432 | 1
433 | 1
434 | 1
435 | 1
436 | 1
437 | 1
438 | 1
439 | 1
440 | 0
441 | 1
442 | 1
443 | 0
444 | 0
445 | 1
446 | 1
447 | 1
448 | 0
449 | 0
450 | 0
451 | 0
452 | 1
453 | 0
454 | 1
455 | 1
456 | 0
457 | 1
458 | 1
459 | 1
460 | 0
461 | 0
462 | 1
463 | 1
464 | 1
465 | 0
466 | 1
467 | 1
468 | 1
469 | 1
470 | 0
471 | 1
472 | 1
473 | 0
474 | 1
475 | 0
476 | 0
477 | 0
478 | 1
479 | 0
480 | 0
481 | 1
482 | 1
483 | 1
484 | 1
485 | 1
486 | 1
487 | 1
488 | 1
489 | 0
490 | 0
491 | 1
492 | 1
493 | 1
494 | 0
495 | 1
496 | 1
497 | 1
498 | 1
499 | 1
500 | 1
501 | 1
502 | 1
503 | 1
504 | 1
505 | 0
506 | 1
507 | 0
508 | 0
509 | 1
510 | 1
511 | 1
512 | 1
513 | 1
514 | 0
515 | 1
516 | 1
517 | 0
518 | 1
519 | 1
520 | 1
521 | 0
522 | 1
523 | 1
524 | 1
525 | 0
526 | 1
527 | 1
528 | 1
529 | 0
530 | 1
531 | 1
532 | 1
533 | 1
534 | 1
535 | 1
536 | 1
537 | 1
538 | 1
539 | 1
540 | 1
541 | 0
542 | 1
543 | 1
544 | 1
545 | 1
546 | 0
547 | 1
548 | 1
549 | 0
550 | 1
551 | 1
552 | 0
553 | 1
554 | 1
555 | 1
556 | 1
557 | 1
558 | 1
559 | 1
560 | 1
561 | 0
562 | 1
563 | 1
564 | 0
565 | 0
566 | 1
567 | 0
568 | 1
569 | 0
570 | 0
571 | 0
572 | 0
573 | 1
574 | 1
575 | 1
576 | 0
577 | 1
578 | 1
579 | 0
580 | 1
581 | 0
582 | 1
583 | 1
584 | 1
585 | 1
586 | 1
587 | 1
588 | 1
589 | 1
590 | 1
591 | 0
592 | 0
593 | 0
594 | 1
595 | 1
596 | 1
597 | 0
598 | 1
599 | 1
600 | 1
601 | 0
602 | 1
603 | 1
604 | 1
605 | 1
606 | 1
607 | 1
608 | 1
609 | 1
610 | 1
611 | 1
612 | 1
613 | 1
614 | 0
615 | 1
616 | 1
617 | 1
618 | 1
619 | 1
620 | 1
621 | 0
622 | 1
623 | 0
624 | 1
625 | 0
626 | 0
627 | 0
628 | 0
629 | 1
630 | 1
631 | 1
632 | 1
633 | 1
634 | 1
635 | 1
636 | 0
637 | 0
638 | 1
639 | 1
640 | 1
641 | 0
642 | 0
643 | 0
644 | 0
645 | 1
646 | 1
647 | 1
648 | 1
649 | 1
650 | 0
651 | 1
652 | 1
653 | 1
654 | 1
655 | 1
656 | 0
657 | 1
658 | 1
659 | 1
660 | 1
661 | 0
662 | 1
663 | 0
664 | 1
665 | 1
666 | 1
667 | 1
668 | 1
669 | 1
670 | 0
671 | 1
672 | 1
673 | 1
674 | 1
675 | 1
676 | 0
677 | 1
678 | 0
679 | 1
680 | 1
681 | 1
682 | 1
683 | 1
684 | 1
685 | 0
686 | 1
687 | 1
688 | 0
689 | 1
690 | 0
691 | 1
692 | 0
693 | 1
694 | 1
695 | 1
696 | 1
697 | 1
698 | 1
699 | 1
700 | 1
701 | 0
702 | 1
703 | 1
704 | 1
705 | 1
706 | 1
707 | 1
708 | 1
709 | 1
710 | 1
711 | 0
712 | 1
713 | 1
714 | 0
715 | 1
716 | 1
717 | 1
718 | 1
719 | 1
720 | 1
721 | 0
722 | 0
723 | 0
724 | 1
725 | 0
726 | 1
727 | 0
728 | 1
729 | 0
730 | 0
731 | 1
732 | 1
733 | 1
734 | 1
735 | 1
736 | 1
737 | 1
738 | 1
739 | 1
740 | 1
741 | 1
742 | 1
743 | 0
744 | 1
745 | 1
746 | 1
747 | 1
748 | 0
749 | 0
750 | 0
751 | 1
752 | 1
753 | 1
754 | 0
755 | 1
756 | 1
757 | 0
758 | 1
759 | 1
760 | 1
761 | 1
762 | 0
763 | 1
764 | 1
765 | 1
766 | 0
767 | 0
768 | 0
769 | 1
770 | 0
771 | 0
772 | 1
773 | 1
774 | 1
775 | 1
776 | 0
777 | 1
778 | 1
779 | 1
780 | 0
781 | 0
782 | 1
783 | 1
784 | 0
785 | 0
786 | 1
787 | 1
788 | 1
789 | 1
790 | 1
791 | 1
792 | 1
793 | 1
794 | 1
795 | 1
796 | 0
797 | 0
798 | 1
799 | 1
800 | 1
801 | 1
802 | 1
803 | 1
804 | 1
805 | 1
806 | 0
807 | 0
808 | 0
809 | 1
810 | 0
811 | 0
812 | 1
813 | 1
814 | 1
815 | 0
816 | 1
817 | 1
818 | 1
819 | 1
820 | 0
821 | 1
822 | 1
823 | 1
824 | 1
825 | 1
826 | 1
827 | 0
828 | 1
829 | 0
830 | 0
831 | 1
832 | 1
833 | 1
834 | 0
835 | 1
836 | 0
837 | 1
838 | 0
839 | 1
840 | 1
841 | 0
842 | 1
843 | 1
844 | 1
845 | 0
846 | 1
847 | 0
848 | 0
849 | 1
850 | 1
851 | 1
852 | 0
853 | 0
854 | 1
855 | 1
856 | 0
857 | 0
858 | 1
859 | 1
860 | 1
861 | 1
862 | 0
863 | 0
864 | 1
865 | 1
866 | 1
867 | 0
868 | 1
869 | 1
870 | 0
871 | 1
872 | 0
873 | 1
874 | 1
875 | 1
876 | 1
877 | 1
878 | 1
879 | 1
880 | 0
881 | 0
882 | 0
883 | 1
884 | 1
885 | 0
886 | 0
887 | 1
888 | 0
889 | 0
890 | 1
891 | 0
892 | 1
893 | 1
894 | 1
895 | 1
896 | 1
897 | 1
898 | 0
899 | 1
900 | 1
901 | 1
902 | 0
903 | 1
904 | 1
905 | 1
906 | 0
907 | 0
908 | 1
909 | 1
910 | 1
911 | 1
912 | 0
913 | 1
914 | 0
915 | 1
916 | 0
917 | 1
918 | 1
919 | 1
920 | 0
921 | 1
922 | 1
923 | 1
924 | 1
925 | 0
926 | 1
927 | 0
928 | 0
929 | 1
930 | 0
931 | 1
932 | 0
933 | 1
934 | 1
935 | 1
936 | 1
937 | 0
938 | 1
939 | 1
940 | 1
941 | 0
942 | 1
943 | 1
944 | 1
945 | 0
946 | 1
947 | 1
948 | 0
949 | 1
950 | 0
951 | 0
952 | 1
953 | 0
954 | 1
955 | 1
956 | 1
957 | 1
958 | 1
959 | 1
960 | 0
961 | 0
962 | 1
963 | 1
964 | 1
965 | 1
966 | 1
967 | 1
968 | 1
969 | 0
970 | 1
971 | 0
972 | 0
973 | 1
974 | 0
975 | 1
976 | 0
977 | 1
978 | 1
979 | 1
980 | 1
981 | 1
982 | 0
983 | 0
984 | 0
985 | 1
986 | 0
987 | 1
988 | 0
989 | 0
990 | 1
991 | 0
992 | 1
993 | 1
994 | 1
995 | 1
996 | 0
997 | 1
998 | 1
999 | 0
1000 | 1
1001 | 1
1002 |
--------------------------------------------------------------------------------
/data/ch11_ad.csv:
--------------------------------------------------------------------------------
1 | 広告,購入
2 | B,しなかった
3 | B,しなかった
4 | A,した
5 | A,した
6 | B,しなかった
7 | B,しなかった
8 | B,しなかった
9 | B,しなかった
10 | B,した
11 | B,しなかった
12 | A,しなかった
13 | B,しなかった
14 | B,しなかった
15 | B,しなかった
16 | B,しなかった
17 | A,しなかった
18 | B,しなかった
19 | A,しなかった
20 | A,しなかった
21 | A,しなかった
22 | A,しなかった
23 | B,しなかった
24 | A,しなかった
25 | B,しなかった
26 | A,した
27 | B,しなかった
28 | B,しなかった
29 | A,しなかった
30 | A,しなかった
31 | A,しなかった
32 | A,しなかった
33 | B,しなかった
34 | B,しなかった
35 | B,しなかった
36 | B,しなかった
37 | B,しなかった
38 | A,しなかった
39 | A,しなかった
40 | A,しなかった
41 | B,しなかった
42 | A,しなかった
43 | A,しなかった
44 | A,しなかった
45 | A,しなかった
46 | B,しなかった
47 | B,した
48 | A,しなかった
49 | B,しなかった
50 | A,しなかった
51 | A,しなかった
52 | B,しなかった
53 | B,しなかった
54 | A,した
55 | B,しなかった
56 | A,しなかった
57 | B,しなかった
58 | B,しなかった
59 | A,しなかった
60 | B,しなかった
61 | B,しなかった
62 | A,しなかった
63 | B,した
64 | B,しなかった
65 | A,しなかった
66 | B,しなかった
67 | A,しなかった
68 | B,した
69 | B,しなかった
70 | B,しなかった
71 | B,しなかった
72 | A,しなかった
73 | B,しなかった
74 | B,しなかった
75 | A,した
76 | B,しなかった
77 | A,しなかった
78 | A,しなかった
79 | B,しなかった
80 | B,しなかった
81 | B,した
82 | A,しなかった
83 | A,しなかった
84 | A,しなかった
85 | B,しなかった
86 | A,しなかった
87 | A,しなかった
88 | B,しなかった
89 | B,した
90 | B,した
91 | A,しなかった
92 | B,しなかった
93 | B,しなかった
94 | A,しなかった
95 | A,しなかった
96 | A,しなかった
97 | A,しなかった
98 | B,しなかった
99 | B,しなかった
100 | A,しなかった
101 | B,しなかった
102 | B,しなかった
103 | B,しなかった
104 | B,しなかった
105 | B,しなかった
106 | A,しなかった
107 | A,した
108 | A,しなかった
109 | A,しなかった
110 | A,しなかった
111 | B,しなかった
112 | B,しなかった
113 | B,しなかった
114 | B,しなかった
115 | A,しなかった
116 | B,しなかった
117 | B,した
118 | B,しなかった
119 | B,しなかった
120 | A,しなかった
121 | B,しなかった
122 | B,しなかった
123 | A,しなかった
124 | A,しなかった
125 | A,しなかった
126 | A,しなかった
127 | A,しなかった
128 | A,しなかった
129 | A,しなかった
130 | B,しなかった
131 | A,しなかった
132 | A,しなかった
133 | B,しなかった
134 | A,しなかった
135 | A,した
136 | B,しなかった
137 | B,しなかった
138 | A,しなかった
139 | B,した
140 | B,しなかった
141 | A,しなかった
142 | A,しなかった
143 | A,しなかった
144 | A,しなかった
145 | B,しなかった
146 | B,しなかった
147 | B,しなかった
148 | A,しなかった
149 | B,しなかった
150 | A,しなかった
151 | B,した
152 | A,しなかった
153 | B,しなかった
154 | A,しなかった
155 | A,しなかった
156 | A,しなかった
157 | B,しなかった
158 | B,しなかった
159 | B,した
160 | B,しなかった
161 | B,しなかった
162 | B,しなかった
163 | A,しなかった
164 | B,しなかった
165 | B,しなかった
166 | B,しなかった
167 | B,しなかった
168 | B,しなかった
169 | B,しなかった
170 | B,しなかった
171 | A,しなかった
172 | A,しなかった
173 | B,しなかった
174 | B,しなかった
175 | B,しなかった
176 | B,しなかった
177 | B,しなかった
178 | B,しなかった
179 | B,しなかった
180 | A,しなかった
181 | B,しなかった
182 | A,しなかった
183 | B,しなかった
184 | B,しなかった
185 | B,しなかった
186 | A,しなかった
187 | A,しなかった
188 | A,しなかった
189 | B,しなかった
190 | B,しなかった
191 | B,しなかった
192 | B,しなかった
193 | A,しなかった
194 | A,しなかった
195 | B,しなかった
196 | B,しなかった
197 | B,しなかった
198 | B,しなかった
199 | B,しなかった
200 | A,しなかった
201 | A,しなかった
202 | A,しなかった
203 | B,しなかった
204 | B,しなかった
205 | B,しなかった
206 | A,しなかった
207 | A,しなかった
208 | B,しなかった
209 | B,しなかった
210 | B,しなかった
211 | A,しなかった
212 | B,しなかった
213 | B,しなかった
214 | B,しなかった
215 | B,しなかった
216 | B,しなかった
217 | B,しなかった
218 | A,しなかった
219 | B,しなかった
220 | B,しなかった
221 | B,した
222 | A,しなかった
223 | A,しなかった
224 | B,しなかった
225 | B,しなかった
226 | B,しなかった
227 | B,しなかった
228 | B,しなかった
229 | A,しなかった
230 | B,した
231 | A,しなかった
232 | B,しなかった
233 | B,しなかった
234 | B,しなかった
235 | B,しなかった
236 | B,しなかった
237 | A,しなかった
238 | A,しなかった
239 | B,しなかった
240 | B,しなかった
241 | B,しなかった
242 | B,しなかった
243 | B,しなかった
244 | A,しなかった
245 | B,しなかった
246 | B,しなかった
247 | A,しなかった
248 | B,しなかった
249 | A,しなかった
250 | A,しなかった
251 | B,しなかった
252 | B,しなかった
253 | A,した
254 | A,しなかった
255 | B,しなかった
256 | B,しなかった
257 | A,しなかった
258 | B,しなかった
259 | B,しなかった
260 | A,しなかった
261 | A,しなかった
262 | B,しなかった
263 | B,しなかった
264 | B,しなかった
265 | A,しなかった
266 | B,しなかった
267 | A,しなかった
268 | A,しなかった
269 | B,しなかった
270 | B,しなかった
271 | A,しなかった
272 | A,しなかった
273 | B,した
274 | B,しなかった
275 | B,しなかった
276 | B,しなかった
277 | A,しなかった
278 | B,しなかった
279 | B,した
280 | B,しなかった
281 | B,しなかった
282 | B,しなかった
283 | B,した
284 | A,しなかった
285 | B,しなかった
286 | B,しなかった
287 | A,しなかった
288 | A,しなかった
289 | B,しなかった
290 | B,しなかった
291 | B,しなかった
292 | B,しなかった
293 | A,しなかった
294 | A,した
295 | A,しなかった
296 | A,した
297 | B,しなかった
298 | B,しなかった
299 | B,しなかった
300 | B,しなかった
301 | A,しなかった
302 | A,しなかった
303 | B,しなかった
304 | A,しなかった
305 | B,しなかった
306 | A,しなかった
307 | B,しなかった
308 | A,しなかった
309 | B,しなかった
310 | A,しなかった
311 | B,しなかった
312 | A,しなかった
313 | B,しなかった
314 | A,しなかった
315 | B,しなかった
316 | A,しなかった
317 | B,した
318 | A,しなかった
319 | B,しなかった
320 | B,しなかった
321 | A,しなかった
322 | B,しなかった
323 | A,しなかった
324 | B,しなかった
325 | B,しなかった
326 | A,しなかった
327 | B,しなかった
328 | B,しなかった
329 | A,しなかった
330 | B,しなかった
331 | B,しなかった
332 | A,しなかった
333 | A,した
334 | A,しなかった
335 | B,した
336 | B,しなかった
337 | B,しなかった
338 | A,しなかった
339 | B,しなかった
340 | A,しなかった
341 | A,しなかった
342 | B,しなかった
343 | B,しなかった
344 | A,した
345 | B,しなかった
346 | B,しなかった
347 | A,しなかった
348 | B,した
349 | B,しなかった
350 | A,しなかった
351 | B,しなかった
352 | B,しなかった
353 | A,しなかった
354 | A,しなかった
355 | B,しなかった
356 | B,しなかった
357 | B,しなかった
358 | A,した
359 | A,した
360 | B,しなかった
361 | B,しなかった
362 | B,しなかった
363 | B,しなかった
364 | B,しなかった
365 | B,しなかった
366 | A,しなかった
367 | A,しなかった
368 | B,しなかった
369 | B,しなかった
370 | B,しなかった
371 | B,しなかった
372 | B,しなかった
373 | A,しなかった
374 | B,しなかった
375 | B,しなかった
376 | A,した
377 | A,しなかった
378 | A,しなかった
379 | B,しなかった
380 | A,しなかった
381 | B,しなかった
382 | A,しなかった
383 | B,しなかった
384 | B,しなかった
385 | B,しなかった
386 | B,しなかった
387 | B,しなかった
388 | A,しなかった
389 | A,した
390 | B,しなかった
391 | B,しなかった
392 | B,しなかった
393 | B,した
394 | B,しなかった
395 | B,しなかった
396 | B,しなかった
397 | A,しなかった
398 | A,しなかった
399 | B,しなかった
400 | B,しなかった
401 | B,しなかった
402 | A,しなかった
403 | A,しなかった
404 | B,しなかった
405 | A,しなかった
406 | B,しなかった
407 | A,しなかった
408 | B,しなかった
409 | B,した
410 | A,しなかった
411 | B,しなかった
412 | B,した
413 | A,しなかった
414 | A,しなかった
415 | B,しなかった
416 | B,しなかった
417 | B,しなかった
418 | B,しなかった
419 | B,しなかった
420 | B,しなかった
421 | A,しなかった
422 | A,しなかった
423 | A,しなかった
424 | B,しなかった
425 | A,した
426 | B,しなかった
427 | B,しなかった
428 | A,しなかった
429 | B,しなかった
430 | A,しなかった
431 | B,しなかった
432 | B,しなかった
433 | B,しなかった
434 | B,しなかった
435 | A,しなかった
436 | B,しなかった
437 | B,しなかった
438 | B,しなかった
439 | A,しなかった
440 | A,しなかった
441 | B,した
442 | B,しなかった
443 | B,しなかった
444 | A,した
445 | B,しなかった
446 | B,しなかった
447 | A,しなかった
448 | B,しなかった
449 | B,しなかった
450 | A,しなかった
451 | A,しなかった
452 | B,しなかった
453 | B,しなかった
454 | B,しなかった
455 | A,しなかった
456 | B,しなかった
457 | A,した
458 | A,しなかった
459 | B,しなかった
460 | B,しなかった
461 | A,した
462 | A,しなかった
463 | B,しなかった
464 | B,しなかった
465 | B,しなかった
466 | A,しなかった
467 | A,しなかった
468 | B,した
469 | A,しなかった
470 | B,しなかった
471 | B,しなかった
472 | A,しなかった
473 | B,した
474 | B,した
475 | B,しなかった
476 | B,しなかった
477 | B,しなかった
478 | A,しなかった
479 | B,しなかった
480 | A,しなかった
481 | A,しなかった
482 | B,した
483 | A,しなかった
484 | A,しなかった
485 | A,した
486 | B,しなかった
487 | B,しなかった
488 | B,しなかった
489 | A,しなかった
490 | B,しなかった
491 | B,した
492 | B,しなかった
493 | B,しなかった
494 | A,しなかった
495 | B,しなかった
496 | B,しなかった
497 | A,しなかった
498 | B,しなかった
499 | A,しなかった
500 | A,しなかった
501 | B,しなかった
502 | B,しなかった
503 | B,しなかった
504 | A,しなかった
505 | B,しなかった
506 | A,しなかった
507 | B,しなかった
508 | B,しなかった
509 | B,しなかった
510 | A,しなかった
511 | B,しなかった
512 | A,しなかった
513 | B,しなかった
514 | B,しなかった
515 | A,した
516 | B,しなかった
517 | A,しなかった
518 | B,しなかった
519 | B,しなかった
520 | B,しなかった
521 | A,しなかった
522 | B,しなかった
523 | B,した
524 | B,しなかった
525 | A,しなかった
526 | A,しなかった
527 | B,しなかった
528 | B,しなかった
529 | A,しなかった
530 | A,しなかった
531 | A,しなかった
532 | B,しなかった
533 | B,しなかった
534 | A,しなかった
535 | B,した
536 | B,しなかった
537 | B,しなかった
538 | A,しなかった
539 | A,しなかった
540 | A,した
541 | A,しなかった
542 | B,しなかった
543 | B,しなかった
544 | B,しなかった
545 | B,した
546 | B,しなかった
547 | B,しなかった
548 | B,しなかった
549 | B,しなかった
550 | A,しなかった
551 | B,した
552 | B,した
553 | B,しなかった
554 | B,しなかった
555 | B,しなかった
556 | B,しなかった
557 | B,しなかった
558 | B,しなかった
559 | B,しなかった
560 | A,した
561 | B,しなかった
562 | A,しなかった
563 | B,しなかった
564 | A,しなかった
565 | B,しなかった
566 | B,しなかった
567 | A,しなかった
568 | A,しなかった
569 | A,しなかった
570 | B,しなかった
571 | A,しなかった
572 | B,した
573 | B,しなかった
574 | B,した
575 | B,しなかった
576 | B,した
577 | B,しなかった
578 | A,しなかった
579 | A,しなかった
580 | A,しなかった
581 | B,しなかった
582 | A,しなかった
583 | B,しなかった
584 | A,しなかった
585 | B,しなかった
586 | B,しなかった
587 | B,しなかった
588 | B,しなかった
589 | B,しなかった
590 | B,しなかった
591 | B,しなかった
592 | A,しなかった
593 | B,しなかった
594 | B,しなかった
595 | B,しなかった
596 | B,しなかった
597 | B,しなかった
598 | B,しなかった
599 | B,しなかった
600 | B,しなかった
601 | B,しなかった
602 | B,しなかった
603 | B,しなかった
604 | B,しなかった
605 | B,しなかった
606 | B,しなかった
607 | B,した
608 | A,した
609 | A,しなかった
610 | B,しなかった
611 | A,しなかった
612 | B,しなかった
613 | A,しなかった
614 | B,しなかった
615 | A,しなかった
616 | B,しなかった
617 | A,しなかった
618 | B,しなかった
619 | A,しなかった
620 | A,しなかった
621 | A,した
622 | B,した
623 | A,しなかった
624 | B,しなかった
625 | B,しなかった
626 | B,しなかった
627 | B,しなかった
628 | A,した
629 | A,しなかった
630 | B,しなかった
631 | B,しなかった
632 | B,しなかった
633 | A,しなかった
634 | B,しなかった
635 | B,しなかった
636 | A,しなかった
637 | A,しなかった
638 | B,しなかった
639 | A,しなかった
640 | B,しなかった
641 | A,しなかった
642 | B,しなかった
643 | A,しなかった
644 | B,しなかった
645 | A,しなかった
646 | B,しなかった
647 | A,しなかった
648 | B,しなかった
649 | B,しなかった
650 | B,しなかった
651 | B,しなかった
652 | B,しなかった
653 | B,しなかった
654 | B,した
655 | B,しなかった
656 | A,しなかった
657 | A,した
658 | B,しなかった
659 | B,しなかった
660 | A,しなかった
661 | B,しなかった
662 | B,しなかった
663 | A,しなかった
664 | A,しなかった
665 | A,しなかった
666 | B,しなかった
667 | B,しなかった
668 | B,しなかった
669 | A,しなかった
670 | A,しなかった
671 | A,しなかった
672 | A,しなかった
673 | B,しなかった
674 | B,しなかった
675 | B,しなかった
676 | A,しなかった
677 | B,しなかった
678 | B,しなかった
679 | A,しなかった
680 | A,した
681 | B,しなかった
682 | A,しなかった
683 | B,しなかった
684 | B,しなかった
685 | B,しなかった
686 | A,した
687 | A,しなかった
688 | A,しなかった
689 | A,しなかった
690 | B,しなかった
691 | A,しなかった
692 | B,しなかった
693 | B,しなかった
694 | B,しなかった
695 | B,しなかった
696 | B,しなかった
697 | B,しなかった
698 | A,しなかった
699 | A,しなかった
700 | B,しなかった
701 | A,しなかった
702 | A,した
703 | B,しなかった
704 | B,しなかった
705 | B,した
706 | B,しなかった
707 | B,しなかった
708 | A,しなかった
709 | A,しなかった
710 | B,しなかった
711 | B,した
712 | B,しなかった
713 | B,しなかった
714 | A,しなかった
715 | B,しなかった
716 | B,しなかった
717 | B,しなかった
718 | A,しなかった
719 | B,しなかった
720 | A,しなかった
721 | B,しなかった
722 | B,しなかった
723 | A,しなかった
724 | B,しなかった
725 | B,しなかった
726 | A,しなかった
727 | B,しなかった
728 | A,しなかった
729 | A,しなかった
730 | B,しなかった
731 | A,しなかった
732 | A,しなかった
733 | A,しなかった
734 | B,した
735 | A,しなかった
736 | A,しなかった
737 | A,しなかった
738 | A,した
739 | A,しなかった
740 | A,しなかった
741 | A,しなかった
742 | B,しなかった
743 | A,しなかった
744 | B,しなかった
745 | A,しなかった
746 | A,しなかった
747 | B,しなかった
748 | B,しなかった
749 | A,しなかった
750 | B,しなかった
751 | A,しなかった
752 | A,しなかった
753 | B,しなかった
754 | B,しなかった
755 | B,した
756 | A,しなかった
757 | A,しなかった
758 | A,しなかった
759 | A,した
760 | B,しなかった
761 | B,した
762 | B,しなかった
763 | B,しなかった
764 | A,しなかった
765 | A,しなかった
766 | A,した
767 | B,しなかった
768 | A,しなかった
769 | B,しなかった
770 | A,しなかった
771 | B,しなかった
772 | B,しなかった
773 | B,しなかった
774 | B,しなかった
775 | B,しなかった
776 | B,しなかった
777 | B,しなかった
778 | A,しなかった
779 | A,しなかった
780 | A,しなかった
781 | A,しなかった
782 | B,した
783 | A,した
784 | B,した
785 | B,しなかった
786 | B,しなかった
787 | B,しなかった
788 | B,しなかった
789 | B,しなかった
790 | B,しなかった
791 | B,しなかった
792 | B,しなかった
793 | B,しなかった
794 | A,した
795 | A,しなかった
796 | A,しなかった
797 | B,しなかった
798 | B,しなかった
799 | A,しなかった
800 | A,した
801 | B,しなかった
802 | B,しなかった
803 | B,しなかった
804 | B,しなかった
805 | B,しなかった
806 | A,しなかった
807 | B,しなかった
808 | B,しなかった
809 | A,しなかった
810 | B,しなかった
811 | A,しなかった
812 | A,しなかった
813 | B,しなかった
814 | A,しなかった
815 | B,しなかった
816 | B,しなかった
817 | B,しなかった
818 | B,しなかった
819 | B,しなかった
820 | B,しなかった
821 | A,しなかった
822 | B,しなかった
823 | B,しなかった
824 | A,しなかった
825 | A,しなかった
826 | A,しなかった
827 | B,しなかった
828 | B,しなかった
829 | A,しなかった
830 | A,しなかった
831 | B,しなかった
832 | A,した
833 | A,しなかった
834 | B,しなかった
835 | B,しなかった
836 | A,しなかった
837 | B,した
838 | B,しなかった
839 | A,しなかった
840 | A,しなかった
841 | A,した
842 | B,しなかった
843 | A,しなかった
844 | A,しなかった
845 | A,しなかった
846 | A,しなかった
847 | A,しなかった
848 | B,しなかった
849 | B,しなかった
850 | B,しなかった
851 | A,しなかった
852 | A,した
853 | B,しなかった
854 | A,しなかった
855 | A,しなかった
856 | B,しなかった
857 | B,しなかった
858 | B,しなかった
859 | A,しなかった
860 | B,しなかった
861 | B,しなかった
862 | B,しなかった
863 | B,しなかった
864 | A,しなかった
865 | A,しなかった
866 | B,しなかった
867 | A,しなかった
868 | A,しなかった
869 | A,しなかった
870 | B,しなかった
871 | A,しなかった
872 | A,しなかった
873 | A,しなかった
874 | B,しなかった
875 | A,しなかった
876 | B,しなかった
877 | B,しなかった
878 | A,しなかった
879 | B,しなかった
880 | A,しなかった
881 | A,しなかった
882 | B,しなかった
883 | B,しなかった
884 | A,しなかった
885 | A,しなかった
886 | A,しなかった
887 | B,しなかった
888 | A,しなかった
889 | B,しなかった
890 | B,しなかった
891 | B,しなかった
892 | B,しなかった
893 | B,しなかった
894 | A,した
895 | A,しなかった
896 | A,しなかった
897 | B,した
898 | B,しなかった
899 | B,しなかった
900 | A,しなかった
901 | B,しなかった
902 | B,しなかった
903 | B,しなかった
904 | B,しなかった
905 | B,しなかった
906 | A,しなかった
907 | A,しなかった
908 | B,しなかった
909 | B,しなかった
910 | B,しなかった
911 | B,しなかった
912 | B,しなかった
913 | B,しなかった
914 | A,しなかった
915 | B,しなかった
916 | A,した
917 | B,しなかった
918 | A,しなかった
919 | A,しなかった
920 | A,しなかった
921 | A,しなかった
922 | A,しなかった
923 | B,しなかった
924 | B,しなかった
925 | A,した
926 | B,しなかった
927 | B,しなかった
928 | B,しなかった
929 | B,しなかった
930 | A,しなかった
931 | B,しなかった
932 | B,しなかった
933 | B,しなかった
934 | B,しなかった
935 | B,しなかった
936 | B,しなかった
937 | A,しなかった
938 | B,しなかった
939 | B,しなかった
940 | B,しなかった
941 | A,しなかった
942 | A,しなかった
943 | B,しなかった
944 | A,した
945 | A,しなかった
946 | A,しなかった
947 | A,しなかった
948 | B,しなかった
949 | B,した
950 | B,しなかった
951 | B,した
952 | B,しなかった
953 | B,しなかった
954 | B,しなかった
955 | B,しなかった
956 | B,しなかった
957 | B,しなかった
958 | A,した
959 | B,しなかった
960 | A,しなかった
961 | A,しなかった
962 | B,しなかった
963 | B,しなかった
964 | A,しなかった
965 | A,しなかった
966 | B,しなかった
967 | B,しなかった
968 | A,しなかった
969 | B,しなかった
970 | A,しなかった
971 | B,しなかった
972 | B,しなかった
973 | B,しなかった
974 | A,しなかった
975 | B,しなかった
976 | A,しなかった
977 | B,しなかった
978 | A,しなかった
979 | A,しなかった
980 | B,した
981 | B,しなかった
982 | A,した
983 | B,しなかった
984 | B,しなかった
985 | B,しなかった
986 | A,しなかった
987 | A,しなかった
988 | B,しなかった
989 | B,しなかった
990 | A,した
991 | B,しなかった
992 | A,しなかった
993 | B,しなかった
994 | A,した
995 | A,しなかった
996 | B,しなかった
997 | B,しなかった
998 | B,しなかった
999 | B,しなかった
1000 | B,しなかった
1001 | A,した
1002 |
--------------------------------------------------------------------------------
/data/ch11_potato.csv:
--------------------------------------------------------------------------------
1 | 重さ
2 | 122.02
3 | 131.73
4 | 130.6
5 | 131.82
6 | 132.05
7 | 126.12
8 | 124.43
9 | 132.89
10 | 122.79
11 | 129.95
12 | 126.14
13 | 134.45
14 | 127.64
15 | 125.68
16 |
--------------------------------------------------------------------------------
/data/ch11_training_ind.csv:
--------------------------------------------------------------------------------
1 | A,B
2 | 47,49
3 | 50,52
4 | 37,54
5 | 60,48
6 | 39,51
7 | 45,52
8 | 53,50
9 | 43,47
10 | 44,46
11 | 45,52
12 | 53,52
13 | 64,64
14 | 50,41
15 | 43,54
16 | 53,55
17 | 46,60
18 | 50,56
19 | 57,49
20 | 46,53
21 | 50,56
22 |
--------------------------------------------------------------------------------
/data/ch11_training_rel.csv:
--------------------------------------------------------------------------------
1 | 前,後
2 | 59,41
3 | 52,63
4 | 55,68
5 | 61,59
6 | 59,84
7 | 45,37
8 | 55,60
9 | 49,52
10 | 49,68
11 | 52,70
12 | 51,57
13 | 57,65
14 | 54,51
15 | 51,38
16 | 52,54
17 | 52,58
18 | 57,73
19 | 49,65
20 | 52,54
21 | 46,48
22 |
--------------------------------------------------------------------------------
/data/ch12_scores_reg.csv:
--------------------------------------------------------------------------------
1 | 小テスト,期末テスト,睡眠時間,通学方法
2 | 4.2,67,7.2,バス
3 | 7.2,71,7.9,自転車
4 | 0.0,19,5.3,バス
5 | 3.0,35,6.8,徒歩
6 | 1.5,35,7.5,徒歩
7 | 0.9,40,7.6,バス
8 | 1.9,23,4.3,徒歩
9 | 3.5,37,4.2,自転車
10 | 4.0,39,4.7,自転車
11 | 5.4,55,7.5,徒歩
12 | 4.2,40,4.4,バス
13 | 6.9,70,5.7,バス
14 | 2.0,29,7.8,バス
15 | 8.8,88,6.1,自転車
16 | 0.3,47,6.8,徒歩
17 | 6.7,77,5.3,バス
18 | 4.2,52,6.7,徒歩
19 | 5.6,55,7.3,徒歩
20 | 1.4,18,4.1,徒歩
21 | 2.0,60,7.0,自転車
22 |
--------------------------------------------------------------------------------
/data/ch1_sport_test.csv:
--------------------------------------------------------------------------------
1 | 生徒番号,学年,握力,上体起こし,点数,順位
2 | 1,1,40.2,34,15,4
3 | 2,1,34.2,14,7,10
4 | 3,1,28.8,27,11,7
5 | 4,2,39.0,27,14,5
6 | 5,2,50.9,32,17,2
7 | 6,2,36.5,20,9,9
8 | 7,3,36.6,31,13,6
9 | 8,3,49.2,37,18,1
10 | 9,3,26.0,28,10,8
11 | 10,3,47.4,32,16,3
12 |
--------------------------------------------------------------------------------
/data/ch2_scores_em.csv:
--------------------------------------------------------------------------------
1 | 生徒番号,英語,数学
2 | 1,42,65
3 | 2,69,80
4 | 3,56,63
5 | 4,41,63
6 | 5,57,76
7 | 6,48,60
8 | 7,65,81
9 | 8,49,66
10 | 9,65,78
11 | 10,58,82
12 | 11,70,94
13 | 12,47,75
14 | 13,51,70
15 | 14,64,77
16 | 15,62,84
17 | 16,70,84
18 | 17,71,82
19 | 18,68,85
20 | 19,73,90
21 | 20,37,70
22 | 21,65,78
23 | 22,65,93
24 | 23,61,77
25 | 24,52,88
26 | 25,57,82
27 | 26,57,76
28 | 27,75,87
29 | 28,61,84
30 | 29,47,77
31 | 30,54,82
32 | 31,66,91
33 | 32,54,75
34 | 33,54,76
35 | 34,42,78
36 | 35,37,57
37 | 36,79,89
38 | 37,56,83
39 | 38,62,69
40 | 39,62,86
41 | 40,55,81
42 | 41,63,81
43 | 42,57,80
44 | 43,57,79
45 | 44,67,87
46 | 45,55,84
47 | 46,45,71
48 | 47,66,80
49 | 48,55,77
50 | 49,64,83
51 | 50,66,88
52 |
--------------------------------------------------------------------------------
/data/ch3_anscombe.npy:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ghmagazine/python_stat_sample/0692d39343caaf726b556abb0a8511fc064acd6c/data/ch3_anscombe.npy
--------------------------------------------------------------------------------
/data/ch4_scores400.csv:
--------------------------------------------------------------------------------
1 | 点数
2 | 76
3 | 55
4 | 80
5 | 80
6 | 74
7 | 61
8 | 81
9 | 76
10 | 23
11 | 80
12 | 41
13 | 80
14 | 68
15 | 88
16 | 69
17 | 57
18 | 68
19 | 86
20 | 70
21 | 68
22 | 81
23 | 73
24 | 70
25 | 90
26 | 93
27 | 79
28 | 66
29 | 92
30 | 88
31 | 81
32 | 52
33 | 72
34 | 59
35 | 68
36 | 74
37 | 72
38 | 63
39 | 89
40 | 45
41 | 81
42 | 42
43 | 76
44 | 57
45 | 83
46 | 71
47 | 74
48 | 55
49 | 60
50 | 73
51 | 79
52 | 100
53 | 73
54 | 85
55 | 47
56 | 50
57 | 65
58 | 52
59 | 92
60 | 64
61 | 91
62 | 92
63 | 71
64 | 78
65 | 69
66 | 78
67 | 77
68 | 68
69 | 78
70 | 96
71 | 81
72 | 75
73 | 72
74 | 55
75 | 55
76 | 75
77 | 49
78 | 59
79 | 89
80 | 99
81 | 45
82 | 94
83 | 67
84 | 70
85 | 68
86 | 86
87 | 46
88 | 77
89 | 56
90 | 79
91 | 93
92 | 70
93 | 76
94 | 76
95 | 58
96 | 93
97 | 96
98 | 81
99 | 71
100 | 63
101 | 61
102 | 96
103 | 91
104 | 69
105 | 46
106 | 28
107 | 54
108 | 68
109 | 91
110 | 60
111 | 78
112 | 90
113 | 72
114 | 68
115 | 50
116 | 52
117 | 76
118 | 67
119 | 72
120 | 69
121 | 80
122 | 58
123 | 65
124 | 98
125 | 58
126 | 66
127 | 61
128 | 77
129 | 85
130 | 63
131 | 64
132 | 66
133 | 78
134 | 59
135 | 64
136 | 34
137 | 49
138 | 68
139 | 83
140 | 74
141 | 54
142 | 49
143 | 73
144 | 45
145 | 86
146 | 71
147 | 46
148 | 56
149 | 59
150 | 58
151 | 48
152 | 57
153 | 60
154 | 59
155 | 87
156 | 72
157 | 55
158 | 65
159 | 57
160 | 65
161 | 83
162 | 74
163 | 100
164 | 76
165 | 56
166 | 82
167 | 86
168 | 86
169 | 54
170 | 68
171 | 87
172 | 45
173 | 63
174 | 49
175 | 56
176 | 55
177 | 89
178 | 66
179 | 57
180 | 54
181 | 72
182 | 70
183 | 90
184 | 78
185 | 49
186 | 61
187 | 86
188 | 61
189 | 96
190 | 54
191 | 79
192 | 57
193 | 62
194 | 86
195 | 68
196 | 82
197 | 77
198 | 81
199 | 57
200 | 67
201 | 76
202 | 57
203 | 94
204 | 58
205 | 65
206 | 55
207 | 38
208 | 97
209 | 67
210 | 63
211 | 67
212 | 91
213 | 56
214 | 80
215 | 64
216 | 61
217 | 79
218 | 85
219 | 62
220 | 58
221 | 52
222 | 87
223 | 61
224 | 42
225 | 91
226 | 49
227 | 82
228 | 73
229 | 74
230 | 61
231 | 75
232 | 45
233 | 79
234 | 93
235 | 83
236 | 40
237 | 55
238 | 67
239 | 77
240 | 68
241 | 63
242 | 79
243 | 87
244 | 67
245 | 81
246 | 31
247 | 56
248 | 65
249 | 63
250 | 75
251 | 85
252 | 78
253 | 61
254 | 47
255 | 78
256 | 42
257 | 80
258 | 67
259 | 52
260 | 74
261 | 70
262 | 69
263 | 69
264 | 76
265 | 84
266 | 77
267 | 85
268 | 69
269 | 94
270 | 79
271 | 62
272 | 54
273 | 73
274 | 50
275 | 55
276 | 74
277 | 61
278 | 56
279 | 69
280 | 71
281 | 67
282 | 64
283 | 83
284 | 75
285 | 67
286 | 100
287 | 73
288 | 87
289 | 62
290 | 50
291 | 58
292 | 66
293 | 63
294 | 90
295 | 68
296 | 77
297 | 69
298 | 63
299 | 71
300 | 96
301 | 58
302 | 82
303 | 55
304 | 63
305 | 70
306 | 75
307 | 92
308 | 69
309 | 57
310 | 80
311 | 65
312 | 74
313 | 68
314 | 41
315 | 78
316 | 79
317 | 84
318 | 97
319 | 52
320 | 78
321 | 76
322 | 64
323 | 76
324 | 77
325 | 52
326 | 74
327 | 56
328 | 60
329 | 43
330 | 63
331 | 67
332 | 78
333 | 70
334 | 47
335 | 83
336 | 68
337 | 77
338 | 84
339 | 91
340 | 99
341 | 69
342 | 75
343 | 54
344 | 86
345 | 52
346 | 43
347 | 82
348 | 62
349 | 82
350 | 76
351 | 46
352 | 29
353 | 54
354 | 70
355 | 52
356 | 60
357 | 48
358 | 73
359 | 71
360 | 63
361 | 91
362 | 92
363 | 78
364 | 43
365 | 53
366 | 76
367 | 61
368 | 63
369 | 83
370 | 78
371 | 90
372 | 64
373 | 91
374 | 62
375 | 92
376 | 72
377 | 57
378 | 46
379 | 65
380 | 66
381 | 83
382 | 68
383 | 64
384 | 86
385 | 67
386 | 61
387 | 79
388 | 63
389 | 80
390 | 61
391 | 67
392 | 72
393 | 64
394 | 70
395 | 82
396 | 76
397 | 77
398 | 60
399 | 83
400 | 80
401 | 85
402 |
--------------------------------------------------------------------------------
/notebook/chap01.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "markdown",
5 | "metadata": {},
6 | "source": [
7 | "# データについて"
8 | ]
9 | },
10 | {
11 | "cell_type": "code",
12 | "execution_count": 1,
13 | "metadata": {
14 | "ExecuteTime": {
15 | "end_time": "2018-08-03T08:26:15.690793Z",
16 | "start_time": "2018-08-03T08:26:15.507201Z"
17 | }
18 | },
19 | "outputs": [],
20 | "source": [
21 | "# Pandasをpdという名前でインポートする\n",
22 | "import pandas as pd"
23 | ]
24 | },
25 | {
26 | "cell_type": "code",
27 | "execution_count": 2,
28 | "metadata": {
29 | "ExecuteTime": {
30 | "end_time": "2018-08-03T08:26:15.708374Z",
31 | "start_time": "2018-08-03T08:26:15.691921Z"
32 | }
33 | },
34 | "outputs": [
35 | {
36 | "data": {
37 | "text/html": [
38 | "
\n",
39 | "\n",
52 | "
\n",
53 | " \n",
54 | " \n",
55 | " | \n",
56 | " 学年 | \n",
57 | " 握力 | \n",
58 | " 上体起こし | \n",
59 | " 点数 | \n",
60 | " 順位 | \n",
61 | "
\n",
62 | " \n",
63 | " 生徒番号 | \n",
64 | " | \n",
65 | " | \n",
66 | " | \n",
67 | " | \n",
68 | " | \n",
69 | "
\n",
70 | " \n",
71 | " \n",
72 | " \n",
73 | " 1 | \n",
74 | " 1 | \n",
75 | " 40.2 | \n",
76 | " 34 | \n",
77 | " 15 | \n",
78 | " 4 | \n",
79 | "
\n",
80 | " \n",
81 | " 2 | \n",
82 | " 1 | \n",
83 | " 34.2 | \n",
84 | " 14 | \n",
85 | " 7 | \n",
86 | " 10 | \n",
87 | "
\n",
88 | " \n",
89 | " 3 | \n",
90 | " 1 | \n",
91 | " 28.8 | \n",
92 | " 27 | \n",
93 | " 11 | \n",
94 | " 7 | \n",
95 | "
\n",
96 | " \n",
97 | " 4 | \n",
98 | " 2 | \n",
99 | " 39.0 | \n",
100 | " 27 | \n",
101 | " 14 | \n",
102 | " 5 | \n",
103 | "
\n",
104 | " \n",
105 | " 5 | \n",
106 | " 2 | \n",
107 | " 50.9 | \n",
108 | " 32 | \n",
109 | " 17 | \n",
110 | " 2 | \n",
111 | "
\n",
112 | " \n",
113 | " 6 | \n",
114 | " 2 | \n",
115 | " 36.5 | \n",
116 | " 20 | \n",
117 | " 9 | \n",
118 | " 9 | \n",
119 | "
\n",
120 | " \n",
121 | " 7 | \n",
122 | " 3 | \n",
123 | " 36.6 | \n",
124 | " 31 | \n",
125 | " 13 | \n",
126 | " 6 | \n",
127 | "
\n",
128 | " \n",
129 | " 8 | \n",
130 | " 3 | \n",
131 | " 49.2 | \n",
132 | " 37 | \n",
133 | " 18 | \n",
134 | " 1 | \n",
135 | "
\n",
136 | " \n",
137 | " 9 | \n",
138 | " 3 | \n",
139 | " 26.0 | \n",
140 | " 28 | \n",
141 | " 10 | \n",
142 | " 8 | \n",
143 | "
\n",
144 | " \n",
145 | " 10 | \n",
146 | " 3 | \n",
147 | " 47.4 | \n",
148 | " 32 | \n",
149 | " 16 | \n",
150 | " 3 | \n",
151 | "
\n",
152 | " \n",
153 | "
\n",
154 | "
"
155 | ],
156 | "text/plain": [
157 | " 学年 握力 上体起こし 点数 順位\n",
158 | "生徒番号 \n",
159 | "1 1 40.2 34 15 4\n",
160 | "2 1 34.2 14 7 10\n",
161 | "3 1 28.8 27 11 7\n",
162 | "4 2 39.0 27 14 5\n",
163 | "5 2 50.9 32 17 2\n",
164 | "6 2 36.5 20 9 9\n",
165 | "7 3 36.6 31 13 6\n",
166 | "8 3 49.2 37 18 1\n",
167 | "9 3 26.0 28 10 8\n",
168 | "10 3 47.4 32 16 3"
169 | ]
170 | },
171 | "execution_count": 2,
172 | "metadata": {},
173 | "output_type": "execute_result"
174 | }
175 | ],
176 | "source": [
177 | "# 生徒番号をインデックスとしてcsvファイルを読み込み、変数dfに格納\n",
178 | "df = pd.read_csv('../data/ch1_sport_test.csv',\n",
179 | " index_col='生徒番号')\n",
180 | "# 変数dfを表示\n",
181 | "df"
182 | ]
183 | },
184 | {
185 | "cell_type": "code",
186 | "execution_count": 3,
187 | "metadata": {
188 | "ExecuteTime": {
189 | "end_time": "2018-08-03T08:26:15.712890Z",
190 | "start_time": "2018-08-03T08:26:15.709417Z"
191 | }
192 | },
193 | "outputs": [
194 | {
195 | "data": {
196 | "text/plain": [
197 | "生徒番号\n",
198 | "1 40.2\n",
199 | "2 34.2\n",
200 | "3 28.8\n",
201 | "4 39.0\n",
202 | "5 50.9\n",
203 | "6 36.5\n",
204 | "7 36.6\n",
205 | "8 49.2\n",
206 | "9 26.0\n",
207 | "10 47.4\n",
208 | "Name: 握力, dtype: float64"
209 | ]
210 | },
211 | "execution_count": 3,
212 | "metadata": {},
213 | "output_type": "execute_result"
214 | }
215 | ],
216 | "source": [
217 | "df['握力']"
218 | ]
219 | },
220 | {
221 | "cell_type": "code",
222 | "execution_count": 4,
223 | "metadata": {
224 | "ExecuteTime": {
225 | "end_time": "2018-08-03T08:26:15.716635Z",
226 | "start_time": "2018-08-03T08:26:15.714019Z"
227 | }
228 | },
229 | "outputs": [
230 | {
231 | "data": {
232 | "text/plain": [
233 | "(10, 5)"
234 | ]
235 | },
236 | "execution_count": 4,
237 | "metadata": {},
238 | "output_type": "execute_result"
239 | }
240 | ],
241 | "source": [
242 | "df.shape"
243 | ]
244 | },
245 | {
246 | "cell_type": "code",
247 | "execution_count": null,
248 | "metadata": {},
249 | "outputs": [],
250 | "source": []
251 | }
252 | ],
253 | "metadata": {
254 | "kernelspec": {
255 | "display_name": "Python 3",
256 | "language": "python",
257 | "name": "python3"
258 | },
259 | "language_info": {
260 | "codemirror_mode": {
261 | "name": "ipython",
262 | "version": 3
263 | },
264 | "file_extension": ".py",
265 | "mimetype": "text/x-python",
266 | "name": "python",
267 | "nbconvert_exporter": "python",
268 | "pygments_lexer": "ipython3",
269 | "version": "3.6.5"
270 | },
271 | "toc": {
272 | "nav_menu": {},
273 | "number_sections": true,
274 | "sideBar": true,
275 | "skip_h1_title": false,
276 | "toc_cell": false,
277 | "toc_position": {},
278 | "toc_section_display": "block",
279 | "toc_window_display": false
280 | }
281 | },
282 | "nbformat": 4,
283 | "nbformat_minor": 2
284 | }
285 |
--------------------------------------------------------------------------------
/samplecode.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ghmagazine/python_stat_sample/0692d39343caaf726b556abb0a8511fc064acd6c/samplecode.png
--------------------------------------------------------------------------------
/tutorial/env_const/images/notebook1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ghmagazine/python_stat_sample/0692d39343caaf726b556abb0a8511fc064acd6c/tutorial/env_const/images/notebook1.png
--------------------------------------------------------------------------------
/tutorial/env_const/images/notebook2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ghmagazine/python_stat_sample/0692d39343caaf726b556abb0a8511fc064acd6c/tutorial/env_const/images/notebook2.png
--------------------------------------------------------------------------------
/tutorial/env_const/images/notebook3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ghmagazine/python_stat_sample/0692d39343caaf726b556abb0a8511fc064acd6c/tutorial/env_const/images/notebook3.png
--------------------------------------------------------------------------------
/tutorial/env_const/macos.md:
--------------------------------------------------------------------------------
1 | # Pythonの環境構築と使い方(MacOS)
2 |
3 | - [環境構築](##環境構築)
4 | - [pyenvのインストール](###pyenvのインストール)
5 | - [Anacondaのインストール](###Anacondaのインストール)
6 | - [仮想環境の作成](###仮想環境の作成)
7 | - [ライブラリのversion](###ライブラリのversion)
8 | - [Jupyter Notebookの起動](##JupyterNotebookの起動)
9 | - [Matplotlibの設定](##Matplotlibの設定)
10 | - [日本語の設定](###日本語の設定)
11 | - [罫線の設定](###罫線の設定)
12 |
13 | ## 環境構築
14 |
15 | Homebrewがインストールされている環境を想定して説明していきます。
16 | Homebrewのインストールは[ここ](https://brew.sh/index_ja)を参考にしてください。
17 |
18 | ### pyenvのインストール
19 |
20 | bashではなくzshなどをお使いの方は適宜`.bashrc`を`.zshrc`に変更してください。
21 |
22 | ```
23 | $ brew install pyenv
24 | $ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
25 | $ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
26 | $ echo 'eval "$(pyenv init -)"' >> ~/.bashrc
27 | $ source ~/.bashrc
28 | ```
29 |
30 | ### Anacondaのインストール
31 |
32 | PythonのインストールはAnacondaをオススメします。
33 | Anacondaは科学技術計算用のライブラリ群があらかじめパッケージングされたPythonです。
34 |
35 | まずはインストールできるAnacondaの一覧を取得しましょう。
36 | ```
37 | $ pyenv install -l | grep anaconda3
38 | anaconda3-2.0.0
39 | anaconda3-2.0.1
40 | anaconda3-2.1.0
41 | anaconda3-2.2.0
42 | anaconda3-2.3.0
43 | anaconda3-2.4.0
44 | anaconda3-2.4.1
45 | anaconda3-2.5.0
46 | anaconda3-4.0.0
47 | anaconda3-4.1.0
48 | anaconda3-4.1.1
49 | anaconda3-4.2.0
50 | anaconda3-4.3.0
51 | anaconda3-4.3.1
52 | anaconda3-4.4.0
53 | anaconda3-5.0.0
54 | anaconda3-5.0.1
55 | anaconda3-5.1.0
56 | anaconda3-5.2.0
57 | ```
58 |
59 | 最新のものをインストールします。8/31現時点ではanaconda3-5.2.0が最新のようです。
60 | ```
61 | $ pyenv install anaconda3-5.2.0
62 | $ pyenv global anaconda3-5.2.0
63 | $ echo 'export PATH="$PYENV_ROOT/versions/anaconda3-5.2.0/bin:$PATH"' >> ~/.bashrc
64 | $ source ~/.bashrc
65 | ```
66 |
67 | ### 仮想環境の作成
68 |
69 | 本書専用の仮想環境を作ります。
70 | ここではpystという名前で作成していますが、好きな名前で作成してもらって構いません。
71 |
72 | ```
73 | $ conda create -n pyst python=3.6 anaconda
74 | $ source activate pyst
75 | ```
76 |
77 | ### ライブラリのversion
78 |
79 | 本書のコードは次のバージョンで実行できることを確認しています。
80 |
81 | |パッケージ名|バージョン|
82 | |:-:|:-:|
83 | |python|3.6.5|
84 | |jupyter|1.0.0|
85 | |ipython|6.2.1|
86 | |notebook|5.5.0|
87 | |numpy|1.14.3|
88 | |pandas|0.23.0|
89 | |matplotlib|2.2.2|
90 | |statsmodels|0.9.0|
91 |
92 | ライブラリのバージョンは次のコマンドで確認できます。
93 | ```
94 | (pyst)$ conda list
95 | ```
96 |
97 | 特にipythonのバージョンによってはnotebookで桁数を抑制するための
98 | ```python
99 | %precision 3
100 | ```
101 | がうまく動かない場合があります。
102 | その場合は、次のコマンドでバージョン6.2のipythonをインストールしてください。
103 | ```
104 | (pyst)$ conda install ipython=6.2
105 | ```
106 |
107 | ## JupyterNotebookの起動
108 |
109 | Jupyter Notebookは次のコマンドで起動します。
110 | コマンドを実行したディレクトリで起動するため、作業ディレクトリに`cd`してから起動するのがいいでしょう。
111 |
112 | ```
113 | (pyst)$ jupyter notebook
114 | ```
115 |
116 | ブラウザが立ち上がり次のような画面が出ていれば成功です。
117 |
118 | 
119 |
120 | notebookは次のようにして立ち上げることができます。
121 |
122 | 
123 |
124 | notebookが立ち上がると次のようになります。
125 | ここにコードを記述すると実行できるようになります。
126 |
127 | 
128 |
129 | ## Matplotlibの設定
130 |
131 | Matplotlibの設定はmatplotlibrcというファイルで変更できます。
132 | [このnotebook](https://github.com/ghmagazine/python_stat_sample/blob/master/tutorial/matplotlib_ja.ipynb)
133 | の最初のセルを実行してmatplotlibrcの場所を調べましょう。
134 |
135 | matplotlibrcにはいろいろと記述されていると思いますが、これまで特に設定を変更していなければ、それらはすべてコメントアウトされている行になっているはずです。
136 | そのため、これからmatplotlibの設定するにあたって、それらの行はすべて消してもらっても構いません。
137 |
138 | ### 日本語の設定
139 |
140 | Matplotlibのデフォルトのフォントは日本語に対応していないため、日本語のキャプションをつけようとすると文字化けしてしまいます。
141 | ここではそのような文字化けを回避するための設定をしていきます。
142 |
143 | - まずIPAexゴシックを[ここ](https://ipafont.ipa.go.jp/node26)からダウンロードしてください。
144 | - ダウンロード後、フォルダを展開して`ipaexg.ttf`をダブルクリックすることでIPAexゴシックをインストールできます。
145 |
146 | matplotlibrcには次の1行を追記してください。
147 | ```
148 | font.family: IPAexGothic
149 | ```
150 |
151 | 最後に[このnotebook](https://github.com/ghmagazine/python_stat_sample/blob/master/tutorial/matplotlib_ja.ipynb)を実行して、日本語表示できているか確認してみましょう。
152 |
153 | ### 罫線の設定
154 | 本書のようにグラフに罫線を出力したい場合は、さらに次の設定もmatplotlibrcに追記してください。
155 |
156 | ```
157 | axes.grid: True
158 | axes.axisbelow: True
159 | grid.alpha: 0.5
160 | ```
161 |
--------------------------------------------------------------------------------
/tutorial/env_const/ubuntu16.md:
--------------------------------------------------------------------------------
1 | # Pythonの環境構築と使い方(Ubuntu16)
2 |
3 | - [環境構築](##環境構築)
4 | - [pyenvのインストール](###pyenvのインストール)
5 | - [Anacondaのインストール](###Anacondaのインストール)
6 | - [仮想環境の作成](###仮想環境の作成)
7 | - [ライブラリのversion](###ライブラリのversion)
8 | - [Jupyter Notebookの起動](##JupyterNotebookの起動)
9 | - [Matplotlibの設定](##Matplotlibの設定)
10 | - [日本語の設定](###日本語の設定)
11 | - [罫線の設定](###罫線の設定)
12 |
13 | ## 環境構築
14 |
15 | ### pyenvのインストール
16 |
17 | bashではなくzshなどをお使いの方は適宜`.bashrc`を`.zshrc`に変更してください。
18 |
19 | ```
20 | $ git clone git://github.com/yyuu/pyenv.git ~/.pyenv
21 | $ git clone https://github.com/yyuu/pyenv-pip-rehash.git ~/.pyenv/plugins/pyenv-pip-rehash
22 | $ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
23 | $ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
24 | $ echo 'eval "$(pyenv init -)"' >> ~/.bashrc
25 | $ source ~/.bashrc
26 | ```
27 |
28 | ### Anacondaのインストール
29 |
30 | PythonのインストールはAnacondaをオススメします。
31 | Anacondaは科学技術計算用のライブラリ群があらかじめパッケージングされたPythonです。
32 |
33 | まずはインストールできるAnacondaの一覧を取得しましょう。
34 | ```
35 | $ pyenv install -l | grep anaconda3
36 | anaconda3-2.0.0
37 | anaconda3-2.0.1
38 | anaconda3-2.1.0
39 | anaconda3-2.2.0
40 | anaconda3-2.3.0
41 | anaconda3-2.4.0
42 | anaconda3-2.4.1
43 | anaconda3-2.5.0
44 | anaconda3-4.0.0
45 | anaconda3-4.1.0
46 | anaconda3-4.1.1
47 | anaconda3-4.2.0
48 | anaconda3-4.3.0
49 | anaconda3-4.3.1
50 | anaconda3-4.4.0
51 | anaconda3-5.0.0
52 | anaconda3-5.0.1
53 | anaconda3-5.1.0
54 | anaconda3-5.2.0
55 | ```
56 |
57 | 最新のものをインストールします。8/31現時点ではanaconda3-5.2.0が最新のようです。
58 | ```
59 | $ pyenv install anaconda3-5.2.0
60 | $ pyenv global anaconda3-5.2.0
61 | $ echo 'export PATH="$PYENV_ROOT/versions/anaconda3-5.2.0/bin:$PATH"' >> ~/.bashrc
62 | $ source ~/.bashrc
63 | ```
64 |
65 | ### 仮想環境の作成
66 |
67 | 本書専用の仮想環境を作ります。
68 | ここではpystという名前で作成していますが、好きな名前で作成してもらって構いません。
69 |
70 | ```
71 | $ conda create -n pyst python=3.6 anaconda
72 | $ source activate pyst
73 | ```
74 |
75 | ### ライブラリのversion
76 |
77 | 本書のコードは次のバージョンで実行できることを確認しています。
78 |
79 | |パッケージ名|バージョン|
80 | |:-:|:-:|
81 | |python|3.6.5|
82 | |jupyter|1.0.0|
83 | |ipython|6.2.1|
84 | |notebook|5.5.0|
85 | |numpy|1.14.3|
86 | |pandas|0.23.0|
87 | |matplotlib|2.2.2|
88 | |statsmodels|0.9.0|
89 |
90 | ライブラリのバージョンは次のコマンドで確認できます。
91 | ```
92 | (pyst)$ conda list
93 | ```
94 |
95 | 特にipythonのバージョンによってはnotebookで桁数を抑制するための
96 | ```python
97 | %precision 3
98 | ```
99 | がうまく動かない場合があります。
100 | その場合は、次のコマンドでバージョン6.2のipythonをインストールしてください。
101 | ```
102 | (pyst)$ conda install ipython=6.2
103 | ```
104 |
105 | ## JupyterNotebookの起動
106 |
107 | Jupyter Notebookは次のコマンドで起動します。
108 | コマンドを実行したディレクトリで起動するため、作業ディレクトリに`cd`してから起動するのがいいでしょう。
109 |
110 | ```
111 | (pyst)$ jupyter notebook
112 | ```
113 |
114 | ブラウザが立ち上がり次のような画面が出ていれば成功です。
115 |
116 | 
117 |
118 | notebookは次のようにして立ち上げることができます。
119 |
120 | 
121 |
122 | notebookが立ち上がると次のようになります。
123 | ここにコードを記述すると実行できるようになります。
124 |
125 | 
126 |
127 | ## Matplotlibの設定
128 |
129 | Matplotlibの設定はmatplotlibrcというファイルで変更できます。
130 | [このnotebook](https://github.com/ghmagazine/python_stat_sample/blob/master/tutorial/matplotlib_ja.ipynb)
131 | の最初のセルを実行してmatplotlibrcの場所を調べましょう。
132 |
133 | matplotlibrcにはいろいろと記述されていると思いますが、これまで特に設定を変更していなければ、それらはすべてコメントアウトされている行になっているはずです。
134 | そのため、これからmatplotlibの設定するにあたって、それらの行はすべて消してもらっても構いません。
135 |
136 | ### 日本語の設定
137 |
138 | Takaoゴシックというフォントが使えるはずです。
139 | matplotlibrcに次の1行を追記してください。
140 | ```
141 | font.family: TakaoGothic
142 | ```
143 |
144 | 最後に[このnotebook](https://github.com/ghmagazine/python_stat_sample/blob/master/tutorial/matplotlib_ja.ipynb)を実行して、日本語表示できているか確認してみましょう。
145 |
146 | ### 罫線の設定
147 | 本書のようにグラフに罫線を出力したい場合は、さらに次の設定もmatplotlibrcに追記してください。
148 |
149 | ```
150 | axes.grid: True
151 | axes.axisbelow: True
152 | grid.alpha: 0.5
153 | ```
154 |
--------------------------------------------------------------------------------
/tutorial/env_const/windows10.md:
--------------------------------------------------------------------------------
1 | # Pythonの環境構築と使い方(Windows10)
2 |
3 | - [環境構築](##環境構築)
4 | - [pyenvのインストール](###pyenvのインストール)
5 | - [Anacondaのインストール](###Anacondaのインストール)
6 | - [仮想環境の作成](###仮想環境の作成)
7 | - [ライブラリのversion](###ライブラリのversion)
8 | - [Jupyter Notebookの起動](##JupyterNotebookの起動)
9 | - [Matplotlibの設定](##Matplotlibの設定)
10 | - [日本語の設定](###日本語の設定)
11 | - [罫線の設定](###罫線の設定)
12 |
13 | ## 環境構築
14 |
15 | ### Anacondaのインストール
16 |
17 | PythonのインストールはAnacondaをオススメします。
18 | Anacondaは科学技術計算用のライブラリ群があらかじめパッケージングされたPythonです。
19 |
20 | https://www.anaconda.com/download/
21 | からPython3.6 versionをDownloadし、指示に従ってインストールしていきましょう。
22 |
23 | ### 仮想環境の作成
24 |
25 | まずは本書専用の仮想環境を作ります。
26 |
27 | Windowsキーを押したあとにanaconda promptと入力して、Anaconda Promptを起動しましょう。
28 |
29 | 黒い画面(プロンプト)が起動し、
30 | ```
31 | (base) C:\Users\hoge>
32 | ```
33 | のような文字が出力されていると思います。
34 |
35 | 仮想環境を作るには次のコマンド(>より右部分)を入力します。
36 | `pyst`の部分には好きな名前を入れてもらっても構いません。
37 | ```
38 | (base) > conda create -n pyst python=3.6 anaconda
39 | ```
40 | 途中いろいろ聞かれるかもしれませんが、すべてyesで大丈夫です。
41 |
42 | この仮想環境を有効するには次のコマンドを実行します。
43 | ```
44 | (base) > activate pyst
45 | ```
46 |
47 | baseがpystになっていればOKです。
48 |
49 | ### ライブラリのversion
50 |
51 | 本書のコードは次のバージョンで実行できることを確認しています。
52 |
53 | |パッケージ名|バージョン|
54 | |:-:|:-:|
55 | |python|3.6.5|
56 | |jupyter|1.0.0|
57 | |ipython|6.2.1|
58 | |notebook|5.5.0|
59 | |numpy|1.14.3|
60 | |pandas|0.23.0|
61 | |matplotlib|2.2.2|
62 | |statsmodels|0.9.0|
63 |
64 | ライブラリのバージョンは次のコマンドで確認できます。
65 | ```
66 | (pyst) > conda list
67 | ```
68 |
69 | 特にipythonのバージョンによってはnotebookで桁数を抑制するための
70 | ```python
71 | %precision 3
72 | ```
73 | がうまく動かない場合があります。
74 | その場合は、次のコマンドでバージョン6.2のipythonをインストールしてください。
75 | ```
76 | (pyst) > conda install ipython=6.2
77 | ```
78 |
79 | ## JupyterNotebookの起動
80 |
81 | Jupyter Notebookは次のコマンドで起動します。
82 | ```
83 | (pyst) > jupyter notebook
84 | ```
85 |
86 | ブラウザが立ち上がり次のような画面が出ていれば成功です。
87 | 
88 |
89 | notebookは次のようにして立ち上げることができます。
90 | 
91 |
92 | notebookが立ち上がると次のようになります。
93 | ここにコードを記述すると実行できるようになります。
94 | 
95 |
96 | フォルダの作成や移動などは直感的に行うことができると思うので、管理しやすいように適当なフォルダを作って作業スペースとしてください。
97 |
98 | ## Matplotlibの設定
99 |
100 | Matplotlibの設定はmatplotlibrcというファイルで変更できます。
101 | [このnotebook](https://github.com/ghmagazine/python_stat_sample/blob/master/tutorial/matplotlib_ja.ipynb)
102 | の最初のセルを実行してmatplotlibrcの場所を調べましょう。
103 |
104 | matplotlibrcにはいろいろと記述されていると思いますが、これまで特に設定を変更していなければ、それらはすべてコメントアウトされている行になっているはずです。
105 | そのため、これからmatplotlibの設定するにあたって、それらの行はすべて消してもらっても構いません。
106 |
107 | ### 日本語の設定
108 |
109 | Matplotlibのデフォルトのフォントは日本語に対応していないため、日本語のキャプションをつけようとすると文字化けしてしまいます。
110 | ここではそのような文字化けを回避するための設定をしていきます。
111 |
112 | - まずIPAexゴシックを[ここ](https://ipafont.ipa.go.jp/node26)からダウンロードしてください。
113 | - ダウンロードした後、フォルダを展開してください。`ipaexg.ttf`というファイルが見つかるはずです。
114 | - コントロールパネル->デスクトップのカスタマイズ->フォントでフォントの設定にいき、そこに`ipaexg.ttf`をドラッグ&ドロップしてください。これでIPAexゴシックをインストールすることができます。
115 |
116 | matplotlibrcには次の1行を追記してください。
117 | ```
118 | font.family: IPAexGothic
119 | ```
120 |
121 | 最後に[このnotebook](https://github.com/ghmagazine/python_stat_sample/blob/master/tutorial/matplotlib_ja.ipynb)を参考に、日本語表示できているか確認してみましょう。
122 |
123 | ### 罫線の設定
124 | 本書のようにグラフに罫線を出力したい場合は、さらに次の設定もmatplotlibrcに追記してください。
125 |
126 | ```
127 | axes.grid: True
128 | axes.axisbelow: True
129 | grid.alpha: 0.5
130 | ```
131 |
--------------------------------------------------------------------------------
/tutorial/matplotlib_ja.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "markdown",
5 | "metadata": {},
6 | "source": [
7 | "# matplotlibrcの場所"
8 | ]
9 | },
10 | {
11 | "cell_type": "code",
12 | "execution_count": 1,
13 | "metadata": {},
14 | "outputs": [
15 | {
16 | "data": {
17 | "text/plain": [
18 | "'.../site-packages/matplotlib/mpl-data/matplotlibrc'"
19 | ]
20 | },
21 | "execution_count": 1,
22 | "metadata": {},
23 | "output_type": "execute_result"
24 | }
25 | ],
26 | "source": [
27 | "import matplotlib\n",
28 | "matplotlib.matplotlib_fname()"
29 | ]
30 | },
31 | {
32 | "cell_type": "markdown",
33 | "metadata": {},
34 | "source": [
35 | "# 日本語の設定"
36 | ]
37 | },
38 | {
39 | "cell_type": "code",
40 | "execution_count": 2,
41 | "metadata": {
42 | "ExecuteTime": {
43 | "end_time": "2018-08-25T12:13:03.811478Z",
44 | "start_time": "2018-08-25T12:13:03.372286Z"
45 | }
46 | },
47 | "outputs": [],
48 | "source": [
49 | "# フォントのキャッシュを削除\n",
50 | "import matplotlib.font_manager as fm\n",
51 | "fm._rebuild()"
52 | ]
53 | },
54 | {
55 | "cell_type": "code",
56 | "execution_count": 3,
57 | "metadata": {
58 | "ExecuteTime": {
59 | "end_time": "2018-08-25T12:13:04.273106Z",
60 | "start_time": "2018-08-25T12:13:04.110691Z"
61 | },
62 | "scrolled": false
63 | },
64 | "outputs": [
65 | {
66 | "data": {
67 | "image/png": "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\n",
68 | "text/plain": [
69 | ""
70 | ]
71 | },
72 | "metadata": {},
73 | "output_type": "display_data"
74 | }
75 | ],
76 | "source": [
77 | "# 日本語が表示できるかのテスト\n",
78 | "import matplotlib.pyplot as plt\n",
79 | "%matplotlib inline\n",
80 | "\n",
81 | "fig = plt.figure()\n",
82 | "ax = fig.add_subplot(111)\n",
83 | "ax.plot([1, 3], [2, 4])\n",
84 | "ax.set_title('日本語のテスト')\n",
85 | "\n",
86 | "plt.show()"
87 | ]
88 | },
89 | {
90 | "cell_type": "code",
91 | "execution_count": null,
92 | "metadata": {},
93 | "outputs": [],
94 | "source": []
95 | }
96 | ],
97 | "metadata": {
98 | "kernelspec": {
99 | "display_name": "Python 3",
100 | "language": "python",
101 | "name": "python3"
102 | },
103 | "language_info": {
104 | "codemirror_mode": {
105 | "name": "ipython",
106 | "version": 3
107 | },
108 | "file_extension": ".py",
109 | "mimetype": "text/x-python",
110 | "name": "python",
111 | "nbconvert_exporter": "python",
112 | "pygments_lexer": "ipython3",
113 | "version": "3.6.5"
114 | },
115 | "toc": {
116 | "nav_menu": {},
117 | "number_sections": true,
118 | "sideBar": true,
119 | "skip_h1_title": false,
120 | "toc_cell": false,
121 | "toc_position": {},
122 | "toc_section_display": "block",
123 | "toc_window_display": false
124 | },
125 | "varInspector": {
126 | "cols": {
127 | "lenName": 16,
128 | "lenType": 16,
129 | "lenVar": 40
130 | },
131 | "kernels_config": {
132 | "python": {
133 | "delete_cmd_postfix": "",
134 | "delete_cmd_prefix": "del ",
135 | "library": "var_list.py",
136 | "varRefreshCmd": "print(var_dic_list())"
137 | },
138 | "r": {
139 | "delete_cmd_postfix": ") ",
140 | "delete_cmd_prefix": "rm(",
141 | "library": "var_list.r",
142 | "varRefreshCmd": "cat(var_dic_list()) "
143 | }
144 | },
145 | "types_to_exclude": [
146 | "module",
147 | "function",
148 | "builtin_function_or_method",
149 | "instance",
150 | "_Feature"
151 | ],
152 | "window_display": false
153 | }
154 | },
155 | "nbformat": 4,
156 | "nbformat_minor": 2
157 | }
158 |
--------------------------------------------------------------------------------
/tutorial/numpy.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "markdown",
5 | "metadata": {},
6 | "source": [
7 | "numpyはnpという名前でインポートされることがほとんどです"
8 | ]
9 | },
10 | {
11 | "cell_type": "code",
12 | "execution_count": 1,
13 | "metadata": {
14 | "ExecuteTime": {
15 | "end_time": "2018-08-25T10:16:48.668490Z",
16 | "start_time": "2018-08-25T10:16:48.566974Z"
17 | }
18 | },
19 | "outputs": [],
20 | "source": [
21 | "import numpy as np"
22 | ]
23 | },
24 | {
25 | "cell_type": "markdown",
26 | "metadata": {},
27 | "source": [
28 | "numpyではarrayという配列で計算を行います \n",
29 | "ここでは[1, 2, 3, 4, 5]という要素をもったnumpyのarrayを用意しましょう"
30 | ]
31 | },
32 | {
33 | "cell_type": "code",
34 | "execution_count": 2,
35 | "metadata": {
36 | "ExecuteTime": {
37 | "end_time": "2018-08-25T10:16:48.671603Z",
38 | "start_time": "2018-08-25T10:16:48.669527Z"
39 | }
40 | },
41 | "outputs": [],
42 | "source": [
43 | "arr = np.array([1, 2, 3, 4, 5])"
44 | ]
45 | },
46 | {
47 | "cell_type": "markdown",
48 | "metadata": {},
49 | "source": [
50 | "大きさはshapeでわかります"
51 | ]
52 | },
53 | {
54 | "cell_type": "code",
55 | "execution_count": 3,
56 | "metadata": {
57 | "ExecuteTime": {
58 | "end_time": "2018-08-25T10:16:48.680356Z",
59 | "start_time": "2018-08-25T10:16:48.672775Z"
60 | }
61 | },
62 | "outputs": [
63 | {
64 | "data": {
65 | "text/plain": [
66 | "(5,)"
67 | ]
68 | },
69 | "execution_count": 3,
70 | "metadata": {},
71 | "output_type": "execute_result"
72 | }
73 | ],
74 | "source": [
75 | "arr.shape"
76 | ]
77 | },
78 | {
79 | "cell_type": "markdown",
80 | "metadata": {},
81 | "source": [
82 | "arrayに対して足し算をしてみましょう"
83 | ]
84 | },
85 | {
86 | "cell_type": "code",
87 | "execution_count": 4,
88 | "metadata": {
89 | "ExecuteTime": {
90 | "end_time": "2018-08-25T10:16:48.685235Z",
91 | "start_time": "2018-08-25T10:16:48.681590Z"
92 | }
93 | },
94 | "outputs": [
95 | {
96 | "data": {
97 | "text/plain": [
98 | "array([3, 4, 5, 6, 7])"
99 | ]
100 | },
101 | "execution_count": 4,
102 | "metadata": {},
103 | "output_type": "execute_result"
104 | }
105 | ],
106 | "source": [
107 | "arr + 2"
108 | ]
109 | },
110 | {
111 | "cell_type": "markdown",
112 | "metadata": {},
113 | "source": [
114 | "すべての要素に+2されました \n",
115 | "これをブロードキャストといいます"
116 | ]
117 | },
118 | {
119 | "cell_type": "markdown",
120 | "metadata": {},
121 | "source": [
122 | "足し算だけでなく、他の演算子でも同じようなことが起きます \n",
123 | "ルートをとってみましょう"
124 | ]
125 | },
126 | {
127 | "cell_type": "code",
128 | "execution_count": 5,
129 | "metadata": {
130 | "ExecuteTime": {
131 | "end_time": "2018-08-25T10:16:48.688995Z",
132 | "start_time": "2018-08-25T10:16:48.686242Z"
133 | }
134 | },
135 | "outputs": [
136 | {
137 | "data": {
138 | "text/plain": [
139 | "array([ 1. , 1.41421356, 1.73205081, 2. , 2.23606798])"
140 | ]
141 | },
142 | "execution_count": 5,
143 | "metadata": {},
144 | "output_type": "execute_result"
145 | }
146 | ],
147 | "source": [
148 | "np.sqrt(arr)"
149 | ]
150 | },
151 | {
152 | "cell_type": "markdown",
153 | "metadata": {},
154 | "source": [
155 | "リストと同様にスライスで要素を抽出できます "
156 | ]
157 | },
158 | {
159 | "cell_type": "code",
160 | "execution_count": 6,
161 | "metadata": {
162 | "ExecuteTime": {
163 | "end_time": "2018-08-25T10:16:48.693379Z",
164 | "start_time": "2018-08-25T10:16:48.689963Z"
165 | }
166 | },
167 | "outputs": [
168 | {
169 | "data": {
170 | "text/plain": [
171 | "array([1, 2])"
172 | ]
173 | },
174 | "execution_count": 6,
175 | "metadata": {},
176 | "output_type": "execute_result"
177 | }
178 | ],
179 | "source": [
180 | "arr[:2]"
181 | ]
182 | },
183 | {
184 | "cell_type": "code",
185 | "execution_count": 7,
186 | "metadata": {
187 | "ExecuteTime": {
188 | "end_time": "2018-08-25T10:16:48.697185Z",
189 | "start_time": "2018-08-25T10:16:48.694541Z"
190 | }
191 | },
192 | "outputs": [
193 | {
194 | "data": {
195 | "text/plain": [
196 | "array([4, 5])"
197 | ]
198 | },
199 | "execution_count": 7,
200 | "metadata": {},
201 | "output_type": "execute_result"
202 | }
203 | ],
204 | "source": [
205 | "arr[3:5]"
206 | ]
207 | },
208 | {
209 | "cell_type": "markdown",
210 | "metadata": {},
211 | "source": [
212 | "numpyのarange関数はよく使います \n",
213 | "arange関数を使って[0, 1, 2, 3, 4]という要素をもったarrayを簡単に作ることができます"
214 | ]
215 | },
216 | {
217 | "cell_type": "code",
218 | "execution_count": 8,
219 | "metadata": {
220 | "ExecuteTime": {
221 | "end_time": "2018-08-25T10:16:48.701069Z",
222 | "start_time": "2018-08-25T10:16:48.698168Z"
223 | }
224 | },
225 | "outputs": [
226 | {
227 | "data": {
228 | "text/plain": [
229 | "array([0, 1, 2, 3, 4])"
230 | ]
231 | },
232 | "execution_count": 8,
233 | "metadata": {},
234 | "output_type": "execute_result"
235 | }
236 | ],
237 | "source": [
238 | "np.arange(5)"
239 | ]
240 | },
241 | {
242 | "cell_type": "markdown",
243 | "metadata": {},
244 | "source": [
245 | "arange関数にはstart, end, stepを指定できます \n",
246 | "[2, 4, 6, 8]という2ずつ数字が増えていくarrayは次のように作ることができます"
247 | ]
248 | },
249 | {
250 | "cell_type": "code",
251 | "execution_count": 9,
252 | "metadata": {
253 | "ExecuteTime": {
254 | "end_time": "2018-08-25T10:16:48.704800Z",
255 | "start_time": "2018-08-25T10:16:48.702121Z"
256 | }
257 | },
258 | "outputs": [
259 | {
260 | "data": {
261 | "text/plain": [
262 | "array([2, 4, 6, 8])"
263 | ]
264 | },
265 | "execution_count": 9,
266 | "metadata": {},
267 | "output_type": "execute_result"
268 | }
269 | ],
270 | "source": [
271 | "np.arange(2, 10, 2)"
272 | ]
273 | },
274 | {
275 | "cell_type": "markdown",
276 | "metadata": {},
277 | "source": [
278 | "linspace関数もよく使います \n",
279 | "linspace関数もstartからendまでのarrayを作る関数ですが、stepではなく要素の数を指定します \n",
280 | "ここでは0から3までを11分割したarrayを作ってみます"
281 | ]
282 | },
283 | {
284 | "cell_type": "code",
285 | "execution_count": 10,
286 | "metadata": {
287 | "ExecuteTime": {
288 | "end_time": "2018-08-25T10:16:48.709763Z",
289 | "start_time": "2018-08-25T10:16:48.705735Z"
290 | }
291 | },
292 | "outputs": [
293 | {
294 | "data": {
295 | "text/plain": [
296 | "array([ 0. , 0.3, 0.6, 0.9, 1.2, 1.5, 1.8, 2.1, 2.4, 2.7, 3. ])"
297 | ]
298 | },
299 | "execution_count": 10,
300 | "metadata": {},
301 | "output_type": "execute_result"
302 | }
303 | ],
304 | "source": [
305 | "np.linspace(0, 3, 11)"
306 | ]
307 | },
308 | {
309 | "cell_type": "markdown",
310 | "metadata": {},
311 | "source": [
312 | "二次元のarrayも簡単に作れます"
313 | ]
314 | },
315 | {
316 | "cell_type": "code",
317 | "execution_count": 11,
318 | "metadata": {
319 | "ExecuteTime": {
320 | "end_time": "2018-08-25T10:16:48.713971Z",
321 | "start_time": "2018-08-25T10:16:48.710915Z"
322 | }
323 | },
324 | "outputs": [
325 | {
326 | "data": {
327 | "text/plain": [
328 | "array([[1, 3],\n",
329 | " [5, 7]])"
330 | ]
331 | },
332 | "execution_count": 11,
333 | "metadata": {},
334 | "output_type": "execute_result"
335 | }
336 | ],
337 | "source": [
338 | "arr2 = np.array([[1, 3],\n",
339 | " [5, 7]])\n",
340 | "arr2"
341 | ]
342 | },
343 | {
344 | "cell_type": "code",
345 | "execution_count": 12,
346 | "metadata": {
347 | "ExecuteTime": {
348 | "end_time": "2018-08-25T10:16:48.717982Z",
349 | "start_time": "2018-08-25T10:16:48.714930Z"
350 | }
351 | },
352 | "outputs": [
353 | {
354 | "data": {
355 | "text/plain": [
356 | "(2, 2)"
357 | ]
358 | },
359 | "execution_count": 12,
360 | "metadata": {},
361 | "output_type": "execute_result"
362 | }
363 | ],
364 | "source": [
365 | "arr2.shape"
366 | ]
367 | },
368 | {
369 | "cell_type": "markdown",
370 | "metadata": {},
371 | "source": [
372 | "save関数でarrayを保存できます \n",
373 | "第一引数が保存する名前で、第二引数が保存するarrayです"
374 | ]
375 | },
376 | {
377 | "cell_type": "code",
378 | "execution_count": 13,
379 | "metadata": {
380 | "ExecuteTime": {
381 | "end_time": "2018-08-25T10:16:48.722431Z",
382 | "start_time": "2018-08-25T10:16:48.719269Z"
383 | }
384 | },
385 | "outputs": [],
386 | "source": [
387 | "np.save('test.npy', arr2)"
388 | ]
389 | },
390 | {
391 | "cell_type": "markdown",
392 | "metadata": {},
393 | "source": [
394 | "読み込みはload関数でできます"
395 | ]
396 | },
397 | {
398 | "cell_type": "code",
399 | "execution_count": 14,
400 | "metadata": {
401 | "ExecuteTime": {
402 | "end_time": "2018-08-25T10:16:48.728431Z",
403 | "start_time": "2018-08-25T10:16:48.724097Z"
404 | }
405 | },
406 | "outputs": [
407 | {
408 | "data": {
409 | "text/plain": [
410 | "array([[1, 3],\n",
411 | " [5, 7]])"
412 | ]
413 | },
414 | "execution_count": 14,
415 | "metadata": {},
416 | "output_type": "execute_result"
417 | }
418 | ],
419 | "source": [
420 | "np.load('test.npy')"
421 | ]
422 | },
423 | {
424 | "cell_type": "code",
425 | "execution_count": null,
426 | "metadata": {},
427 | "outputs": [],
428 | "source": []
429 | }
430 | ],
431 | "metadata": {
432 | "kernelspec": {
433 | "display_name": "Python 3",
434 | "language": "python",
435 | "name": "python3"
436 | },
437 | "language_info": {
438 | "codemirror_mode": {
439 | "name": "ipython",
440 | "version": 3
441 | },
442 | "file_extension": ".py",
443 | "mimetype": "text/x-python",
444 | "name": "python",
445 | "nbconvert_exporter": "python",
446 | "pygments_lexer": "ipython3",
447 | "version": "3.6.6"
448 | },
449 | "toc": {
450 | "nav_menu": {},
451 | "number_sections": true,
452 | "sideBar": true,
453 | "skip_h1_title": false,
454 | "toc_cell": false,
455 | "toc_position": {},
456 | "toc_section_display": "block",
457 | "toc_window_display": false
458 | },
459 | "varInspector": {
460 | "cols": {
461 | "lenName": 16,
462 | "lenType": 16,
463 | "lenVar": 40
464 | },
465 | "kernels_config": {
466 | "python": {
467 | "delete_cmd_postfix": "",
468 | "delete_cmd_prefix": "del ",
469 | "library": "var_list.py",
470 | "varRefreshCmd": "print(var_dic_list())"
471 | },
472 | "r": {
473 | "delete_cmd_postfix": ") ",
474 | "delete_cmd_prefix": "rm(",
475 | "library": "var_list.r",
476 | "varRefreshCmd": "cat(var_dic_list()) "
477 | }
478 | },
479 | "types_to_exclude": [
480 | "module",
481 | "function",
482 | "builtin_function_or_method",
483 | "instance",
484 | "_Feature"
485 | ],
486 | "window_display": false
487 | }
488 | },
489 | "nbformat": 4,
490 | "nbformat_minor": 2
491 | }
492 |
--------------------------------------------------------------------------------
/tutorial/pandas.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "markdown",
5 | "metadata": {},
6 | "source": [
7 | "pandasはpdという名前でインポートされることがほとんどです"
8 | ]
9 | },
10 | {
11 | "cell_type": "code",
12 | "execution_count": 1,
13 | "metadata": {
14 | "ExecuteTime": {
15 | "end_time": "2018-08-25T12:13:22.016301Z",
16 | "start_time": "2018-08-25T12:13:21.840802Z"
17 | }
18 | },
19 | "outputs": [],
20 | "source": [
21 | "import pandas as pd"
22 | ]
23 | },
24 | {
25 | "cell_type": "markdown",
26 | "metadata": {},
27 | "source": [
28 | "本書第1章で使うデータを読み込みましょう \n",
29 | "read_csv関数を使うことでcsvをpandasのDataFrameという形式で読み込むことができます"
30 | ]
31 | },
32 | {
33 | "cell_type": "code",
34 | "execution_count": 2,
35 | "metadata": {},
36 | "outputs": [
37 | {
38 | "data": {
39 | "text/html": [
40 | "\n",
41 | "\n",
54 | "
\n",
55 | " \n",
56 | " \n",
57 | " | \n",
58 | " 生徒番号 | \n",
59 | " 学年 | \n",
60 | " 握力 | \n",
61 | " 上体起こし | \n",
62 | " 点数 | \n",
63 | " 順位 | \n",
64 | "
\n",
65 | " \n",
66 | " \n",
67 | " \n",
68 | " 0 | \n",
69 | " 1 | \n",
70 | " 1 | \n",
71 | " 40.2 | \n",
72 | " 34 | \n",
73 | " 15 | \n",
74 | " 4 | \n",
75 | "
\n",
76 | " \n",
77 | " 1 | \n",
78 | " 2 | \n",
79 | " 1 | \n",
80 | " 34.2 | \n",
81 | " 14 | \n",
82 | " 7 | \n",
83 | " 10 | \n",
84 | "
\n",
85 | " \n",
86 | " 2 | \n",
87 | " 3 | \n",
88 | " 1 | \n",
89 | " 28.8 | \n",
90 | " 27 | \n",
91 | " 11 | \n",
92 | " 7 | \n",
93 | "
\n",
94 | " \n",
95 | " 3 | \n",
96 | " 4 | \n",
97 | " 2 | \n",
98 | " 39.0 | \n",
99 | " 27 | \n",
100 | " 14 | \n",
101 | " 5 | \n",
102 | "
\n",
103 | " \n",
104 | " 4 | \n",
105 | " 5 | \n",
106 | " 2 | \n",
107 | " 50.9 | \n",
108 | " 32 | \n",
109 | " 17 | \n",
110 | " 2 | \n",
111 | "
\n",
112 | " \n",
113 | " 5 | \n",
114 | " 6 | \n",
115 | " 2 | \n",
116 | " 36.5 | \n",
117 | " 20 | \n",
118 | " 9 | \n",
119 | " 9 | \n",
120 | "
\n",
121 | " \n",
122 | " 6 | \n",
123 | " 7 | \n",
124 | " 3 | \n",
125 | " 36.6 | \n",
126 | " 31 | \n",
127 | " 13 | \n",
128 | " 6 | \n",
129 | "
\n",
130 | " \n",
131 | " 7 | \n",
132 | " 8 | \n",
133 | " 3 | \n",
134 | " 49.2 | \n",
135 | " 37 | \n",
136 | " 18 | \n",
137 | " 1 | \n",
138 | "
\n",
139 | " \n",
140 | " 8 | \n",
141 | " 9 | \n",
142 | " 3 | \n",
143 | " 26.0 | \n",
144 | " 28 | \n",
145 | " 10 | \n",
146 | " 8 | \n",
147 | "
\n",
148 | " \n",
149 | " 9 | \n",
150 | " 10 | \n",
151 | " 3 | \n",
152 | " 47.4 | \n",
153 | " 32 | \n",
154 | " 16 | \n",
155 | " 3 | \n",
156 | "
\n",
157 | " \n",
158 | "
\n",
159 | "
"
160 | ],
161 | "text/plain": [
162 | " 生徒番号 学年 握力 上体起こし 点数 順位\n",
163 | "0 1 1 40.2 34 15 4\n",
164 | "1 2 1 34.2 14 7 10\n",
165 | "2 3 1 28.8 27 11 7\n",
166 | "3 4 2 39.0 27 14 5\n",
167 | "4 5 2 50.9 32 17 2\n",
168 | "5 6 2 36.5 20 9 9\n",
169 | "6 7 3 36.6 31 13 6\n",
170 | "7 8 3 49.2 37 18 1\n",
171 | "8 9 3 26.0 28 10 8\n",
172 | "9 10 3 47.4 32 16 3"
173 | ]
174 | },
175 | "execution_count": 2,
176 | "metadata": {},
177 | "output_type": "execute_result"
178 | }
179 | ],
180 | "source": [
181 | "df = pd.read_csv('../data/ch1_sport_test.csv')\n",
182 | "df"
183 | ]
184 | },
185 | {
186 | "cell_type": "markdown",
187 | "metadata": {},
188 | "source": [
189 | "# 抽出"
190 | ]
191 | },
192 | {
193 | "cell_type": "markdown",
194 | "metadata": {},
195 | "source": [
196 | "今回はDataFrameが10行と比較的小規模ですが、数百行・数千行のDataFrameを扱うことも珍しくありません \n",
197 | "そのようなDataFrameの概観を知るためにDataFrameのheadメソッドがよく使われます \n",
198 | "headメソッドはDataFrameの先頭の数行を抽出するメソッドです \n",
199 | "ここでは3行抽出してみましょう"
200 | ]
201 | },
202 | {
203 | "cell_type": "code",
204 | "execution_count": 3,
205 | "metadata": {},
206 | "outputs": [
207 | {
208 | "data": {
209 | "text/html": [
210 | "\n",
211 | "\n",
224 | "
\n",
225 | " \n",
226 | " \n",
227 | " | \n",
228 | " 生徒番号 | \n",
229 | " 学年 | \n",
230 | " 握力 | \n",
231 | " 上体起こし | \n",
232 | " 点数 | \n",
233 | " 順位 | \n",
234 | "
\n",
235 | " \n",
236 | " \n",
237 | " \n",
238 | " 0 | \n",
239 | " 1 | \n",
240 | " 1 | \n",
241 | " 40.2 | \n",
242 | " 34 | \n",
243 | " 15 | \n",
244 | " 4 | \n",
245 | "
\n",
246 | " \n",
247 | " 1 | \n",
248 | " 2 | \n",
249 | " 1 | \n",
250 | " 34.2 | \n",
251 | " 14 | \n",
252 | " 7 | \n",
253 | " 10 | \n",
254 | "
\n",
255 | " \n",
256 | " 2 | \n",
257 | " 3 | \n",
258 | " 1 | \n",
259 | " 28.8 | \n",
260 | " 27 | \n",
261 | " 11 | \n",
262 | " 7 | \n",
263 | "
\n",
264 | " \n",
265 | "
\n",
266 | "
"
267 | ],
268 | "text/plain": [
269 | " 生徒番号 学年 握力 上体起こし 点数 順位\n",
270 | "0 1 1 40.2 34 15 4\n",
271 | "1 2 1 34.2 14 7 10\n",
272 | "2 3 1 28.8 27 11 7"
273 | ]
274 | },
275 | "execution_count": 3,
276 | "metadata": {},
277 | "output_type": "execute_result"
278 | }
279 | ],
280 | "source": [
281 | "df.head(3)"
282 | ]
283 | },
284 | {
285 | "cell_type": "markdown",
286 | "metadata": {},
287 | "source": [
288 | "何も指定しないと5行抽出されます"
289 | ]
290 | },
291 | {
292 | "cell_type": "code",
293 | "execution_count": 4,
294 | "metadata": {},
295 | "outputs": [
296 | {
297 | "data": {
298 | "text/html": [
299 | "\n",
300 | "\n",
313 | "
\n",
314 | " \n",
315 | " \n",
316 | " | \n",
317 | " 生徒番号 | \n",
318 | " 学年 | \n",
319 | " 握力 | \n",
320 | " 上体起こし | \n",
321 | " 点数 | \n",
322 | " 順位 | \n",
323 | "
\n",
324 | " \n",
325 | " \n",
326 | " \n",
327 | " 0 | \n",
328 | " 1 | \n",
329 | " 1 | \n",
330 | " 40.2 | \n",
331 | " 34 | \n",
332 | " 15 | \n",
333 | " 4 | \n",
334 | "
\n",
335 | " \n",
336 | " 1 | \n",
337 | " 2 | \n",
338 | " 1 | \n",
339 | " 34.2 | \n",
340 | " 14 | \n",
341 | " 7 | \n",
342 | " 10 | \n",
343 | "
\n",
344 | " \n",
345 | " 2 | \n",
346 | " 3 | \n",
347 | " 1 | \n",
348 | " 28.8 | \n",
349 | " 27 | \n",
350 | " 11 | \n",
351 | " 7 | \n",
352 | "
\n",
353 | " \n",
354 | " 3 | \n",
355 | " 4 | \n",
356 | " 2 | \n",
357 | " 39.0 | \n",
358 | " 27 | \n",
359 | " 14 | \n",
360 | " 5 | \n",
361 | "
\n",
362 | " \n",
363 | " 4 | \n",
364 | " 5 | \n",
365 | " 2 | \n",
366 | " 50.9 | \n",
367 | " 32 | \n",
368 | " 17 | \n",
369 | " 2 | \n",
370 | "
\n",
371 | " \n",
372 | "
\n",
373 | "
"
374 | ],
375 | "text/plain": [
376 | " 生徒番号 学年 握力 上体起こし 点数 順位\n",
377 | "0 1 1 40.2 34 15 4\n",
378 | "1 2 1 34.2 14 7 10\n",
379 | "2 3 1 28.8 27 11 7\n",
380 | "3 4 2 39.0 27 14 5\n",
381 | "4 5 2 50.9 32 17 2"
382 | ]
383 | },
384 | "execution_count": 4,
385 | "metadata": {},
386 | "output_type": "execute_result"
387 | }
388 | ],
389 | "source": [
390 | "df.head()"
391 | ]
392 | },
393 | {
394 | "cell_type": "markdown",
395 | "metadata": {},
396 | "source": [
397 | "同様にtailメソッドはDataFrameの末尾を抽出します"
398 | ]
399 | },
400 | {
401 | "cell_type": "code",
402 | "execution_count": 5,
403 | "metadata": {},
404 | "outputs": [
405 | {
406 | "data": {
407 | "text/html": [
408 | "\n",
409 | "\n",
422 | "
\n",
423 | " \n",
424 | " \n",
425 | " | \n",
426 | " 生徒番号 | \n",
427 | " 学年 | \n",
428 | " 握力 | \n",
429 | " 上体起こし | \n",
430 | " 点数 | \n",
431 | " 順位 | \n",
432 | "
\n",
433 | " \n",
434 | " \n",
435 | " \n",
436 | " 5 | \n",
437 | " 6 | \n",
438 | " 2 | \n",
439 | " 36.5 | \n",
440 | " 20 | \n",
441 | " 9 | \n",
442 | " 9 | \n",
443 | "
\n",
444 | " \n",
445 | " 6 | \n",
446 | " 7 | \n",
447 | " 3 | \n",
448 | " 36.6 | \n",
449 | " 31 | \n",
450 | " 13 | \n",
451 | " 6 | \n",
452 | "
\n",
453 | " \n",
454 | " 7 | \n",
455 | " 8 | \n",
456 | " 3 | \n",
457 | " 49.2 | \n",
458 | " 37 | \n",
459 | " 18 | \n",
460 | " 1 | \n",
461 | "
\n",
462 | " \n",
463 | " 8 | \n",
464 | " 9 | \n",
465 | " 3 | \n",
466 | " 26.0 | \n",
467 | " 28 | \n",
468 | " 10 | \n",
469 | " 8 | \n",
470 | "
\n",
471 | " \n",
472 | " 9 | \n",
473 | " 10 | \n",
474 | " 3 | \n",
475 | " 47.4 | \n",
476 | " 32 | \n",
477 | " 16 | \n",
478 | " 3 | \n",
479 | "
\n",
480 | " \n",
481 | "
\n",
482 | "
"
483 | ],
484 | "text/plain": [
485 | " 生徒番号 学年 握力 上体起こし 点数 順位\n",
486 | "5 6 2 36.5 20 9 9\n",
487 | "6 7 3 36.6 31 13 6\n",
488 | "7 8 3 49.2 37 18 1\n",
489 | "8 9 3 26.0 28 10 8\n",
490 | "9 10 3 47.4 32 16 3"
491 | ]
492 | },
493 | "execution_count": 5,
494 | "metadata": {},
495 | "output_type": "execute_result"
496 | }
497 | ],
498 | "source": [
499 | "df.tail()"
500 | ]
501 | },
502 | {
503 | "cell_type": "markdown",
504 | "metadata": {},
505 | "source": [
506 | "スライスで抽出することもできます"
507 | ]
508 | },
509 | {
510 | "cell_type": "code",
511 | "execution_count": 6,
512 | "metadata": {},
513 | "outputs": [
514 | {
515 | "data": {
516 | "text/html": [
517 | "\n",
518 | "\n",
531 | "
\n",
532 | " \n",
533 | " \n",
534 | " | \n",
535 | " 生徒番号 | \n",
536 | " 学年 | \n",
537 | " 握力 | \n",
538 | " 上体起こし | \n",
539 | " 点数 | \n",
540 | " 順位 | \n",
541 | "
\n",
542 | " \n",
543 | " \n",
544 | " \n",
545 | " 2 | \n",
546 | " 3 | \n",
547 | " 1 | \n",
548 | " 28.8 | \n",
549 | " 27 | \n",
550 | " 11 | \n",
551 | " 7 | \n",
552 | "
\n",
553 | " \n",
554 | " 3 | \n",
555 | " 4 | \n",
556 | " 2 | \n",
557 | " 39.0 | \n",
558 | " 27 | \n",
559 | " 14 | \n",
560 | " 5 | \n",
561 | "
\n",
562 | " \n",
563 | " 4 | \n",
564 | " 5 | \n",
565 | " 2 | \n",
566 | " 50.9 | \n",
567 | " 32 | \n",
568 | " 17 | \n",
569 | " 2 | \n",
570 | "
\n",
571 | " \n",
572 | "
\n",
573 | "
"
574 | ],
575 | "text/plain": [
576 | " 生徒番号 学年 握力 上体起こし 点数 順位\n",
577 | "2 3 1 28.8 27 11 7\n",
578 | "3 4 2 39.0 27 14 5\n",
579 | "4 5 2 50.9 32 17 2"
580 | ]
581 | },
582 | "execution_count": 6,
583 | "metadata": {},
584 | "output_type": "execute_result"
585 | }
586 | ],
587 | "source": [
588 | "df[2:5]"
589 | ]
590 | },
591 | {
592 | "cell_type": "markdown",
593 | "metadata": {},
594 | "source": [
595 | "列は列名によって抽出できます "
596 | ]
597 | },
598 | {
599 | "cell_type": "code",
600 | "execution_count": 7,
601 | "metadata": {},
602 | "outputs": [
603 | {
604 | "data": {
605 | "text/plain": [
606 | "0 40.2\n",
607 | "1 34.2\n",
608 | "2 28.8\n",
609 | "3 39.0\n",
610 | "4 50.9\n",
611 | "5 36.5\n",
612 | "6 36.6\n",
613 | "7 49.2\n",
614 | "8 26.0\n",
615 | "9 47.4\n",
616 | "Name: 握力, dtype: float64"
617 | ]
618 | },
619 | "execution_count": 7,
620 | "metadata": {},
621 | "output_type": "execute_result"
622 | }
623 | ],
624 | "source": [
625 | "df['握力']"
626 | ]
627 | },
628 | {
629 | "cell_type": "markdown",
630 | "metadata": {},
631 | "source": [
632 | "複数列を同時に指定することもできます"
633 | ]
634 | },
635 | {
636 | "cell_type": "code",
637 | "execution_count": 8,
638 | "metadata": {},
639 | "outputs": [
640 | {
641 | "data": {
642 | "text/html": [
643 | "\n",
644 | "\n",
657 | "
\n",
658 | " \n",
659 | " \n",
660 | " | \n",
661 | " 学年 | \n",
662 | " 点数 | \n",
663 | "
\n",
664 | " \n",
665 | " \n",
666 | " \n",
667 | " 0 | \n",
668 | " 1 | \n",
669 | " 15 | \n",
670 | "
\n",
671 | " \n",
672 | " 1 | \n",
673 | " 1 | \n",
674 | " 7 | \n",
675 | "
\n",
676 | " \n",
677 | " 2 | \n",
678 | " 1 | \n",
679 | " 11 | \n",
680 | "
\n",
681 | " \n",
682 | " 3 | \n",
683 | " 2 | \n",
684 | " 14 | \n",
685 | "
\n",
686 | " \n",
687 | " 4 | \n",
688 | " 2 | \n",
689 | " 17 | \n",
690 | "
\n",
691 | " \n",
692 | " 5 | \n",
693 | " 2 | \n",
694 | " 9 | \n",
695 | "
\n",
696 | " \n",
697 | " 6 | \n",
698 | " 3 | \n",
699 | " 13 | \n",
700 | "
\n",
701 | " \n",
702 | " 7 | \n",
703 | " 3 | \n",
704 | " 18 | \n",
705 | "
\n",
706 | " \n",
707 | " 8 | \n",
708 | " 3 | \n",
709 | " 10 | \n",
710 | "
\n",
711 | " \n",
712 | " 9 | \n",
713 | " 3 | \n",
714 | " 16 | \n",
715 | "
\n",
716 | " \n",
717 | "
\n",
718 | "
"
719 | ],
720 | "text/plain": [
721 | " 学年 点数\n",
722 | "0 1 15\n",
723 | "1 1 7\n",
724 | "2 1 11\n",
725 | "3 2 14\n",
726 | "4 2 17\n",
727 | "5 2 9\n",
728 | "6 3 13\n",
729 | "7 3 18\n",
730 | "8 3 10\n",
731 | "9 3 16"
732 | ]
733 | },
734 | "execution_count": 8,
735 | "metadata": {},
736 | "output_type": "execute_result"
737 | }
738 | ],
739 | "source": [
740 | "df[['学年', '点数']]"
741 | ]
742 | },
743 | {
744 | "cell_type": "markdown",
745 | "metadata": {},
746 | "source": [
747 | "行と列を同時に指定して抽出したいときはlocメソッドが便利です \n",
748 | "たとえば1行目の学年は次のように抽出できます"
749 | ]
750 | },
751 | {
752 | "cell_type": "code",
753 | "execution_count": 9,
754 | "metadata": {},
755 | "outputs": [
756 | {
757 | "data": {
758 | "text/plain": [
759 | "1"
760 | ]
761 | },
762 | "execution_count": 9,
763 | "metadata": {},
764 | "output_type": "execute_result"
765 | }
766 | ],
767 | "source": [
768 | "df.loc[1, '学年']"
769 | ]
770 | },
771 | {
772 | "cell_type": "markdown",
773 | "metadata": {},
774 | "source": [
775 | "スライスによる指定も可能です"
776 | ]
777 | },
778 | {
779 | "cell_type": "code",
780 | "execution_count": 10,
781 | "metadata": {},
782 | "outputs": [
783 | {
784 | "data": {
785 | "text/plain": [
786 | "1 34.2\n",
787 | "2 28.8\n",
788 | "3 39.0\n",
789 | "Name: 握力, dtype: float64"
790 | ]
791 | },
792 | "execution_count": 10,
793 | "metadata": {},
794 | "output_type": "execute_result"
795 | }
796 | ],
797 | "source": [
798 | "df.loc[1:3, '握力']"
799 | ]
800 | },
801 | {
802 | "cell_type": "markdown",
803 | "metadata": {},
804 | "source": [
805 | "条件に合致する行を抽出したい場合は次のように書きます \n",
806 | "ここでは握力が30より下の行を抽出しています"
807 | ]
808 | },
809 | {
810 | "cell_type": "code",
811 | "execution_count": 11,
812 | "metadata": {},
813 | "outputs": [
814 | {
815 | "data": {
816 | "text/html": [
817 | "\n",
818 | "\n",
831 | "
\n",
832 | " \n",
833 | " \n",
834 | " | \n",
835 | " 生徒番号 | \n",
836 | " 学年 | \n",
837 | " 握力 | \n",
838 | " 上体起こし | \n",
839 | " 点数 | \n",
840 | " 順位 | \n",
841 | "
\n",
842 | " \n",
843 | " \n",
844 | " \n",
845 | " 2 | \n",
846 | " 3 | \n",
847 | " 1 | \n",
848 | " 28.8 | \n",
849 | " 27 | \n",
850 | " 11 | \n",
851 | " 7 | \n",
852 | "
\n",
853 | " \n",
854 | " 8 | \n",
855 | " 9 | \n",
856 | " 3 | \n",
857 | " 26.0 | \n",
858 | " 28 | \n",
859 | " 10 | \n",
860 | " 8 | \n",
861 | "
\n",
862 | " \n",
863 | "
\n",
864 | "
"
865 | ],
866 | "text/plain": [
867 | " 生徒番号 学年 握力 上体起こし 点数 順位\n",
868 | "2 3 1 28.8 27 11 7\n",
869 | "8 9 3 26.0 28 10 8"
870 | ]
871 | },
872 | "execution_count": 11,
873 | "metadata": {},
874 | "output_type": "execute_result"
875 | }
876 | ],
877 | "source": [
878 | "df[df['握力'] < 30]"
879 | ]
880 | },
881 | {
882 | "cell_type": "markdown",
883 | "metadata": {},
884 | "source": [
885 | "# データの概要"
886 | ]
887 | },
888 | {
889 | "cell_type": "markdown",
890 | "metadata": {},
891 | "source": [
892 | "データの大きさはshapeでわかります"
893 | ]
894 | },
895 | {
896 | "cell_type": "code",
897 | "execution_count": 12,
898 | "metadata": {},
899 | "outputs": [
900 | {
901 | "data": {
902 | "text/plain": [
903 | "(10, 6)"
904 | ]
905 | },
906 | "execution_count": 12,
907 | "metadata": {},
908 | "output_type": "execute_result"
909 | }
910 | ],
911 | "source": [
912 | "df.shape"
913 | ]
914 | },
915 | {
916 | "cell_type": "markdown",
917 | "metadata": {},
918 | "source": [
919 | "列名はcolumnsです"
920 | ]
921 | },
922 | {
923 | "cell_type": "code",
924 | "execution_count": 13,
925 | "metadata": {},
926 | "outputs": [
927 | {
928 | "data": {
929 | "text/plain": [
930 | "Index(['生徒番号', '学年', '握力', '上体起こし', '点数', '順位'], dtype='object')"
931 | ]
932 | },
933 | "execution_count": 13,
934 | "metadata": {},
935 | "output_type": "execute_result"
936 | }
937 | ],
938 | "source": [
939 | "df.columns"
940 | ]
941 | },
942 | {
943 | "cell_type": "code",
944 | "execution_count": 14,
945 | "metadata": {},
946 | "outputs": [
947 | {
948 | "data": {
949 | "text/plain": [
950 | "RangeIndex(start=0, stop=10, step=1)"
951 | ]
952 | },
953 | "execution_count": 14,
954 | "metadata": {},
955 | "output_type": "execute_result"
956 | }
957 | ],
958 | "source": [
959 | "df.index"
960 | ]
961 | },
962 | {
963 | "cell_type": "code",
964 | "execution_count": 15,
965 | "metadata": {},
966 | "outputs": [
967 | {
968 | "data": {
969 | "text/html": [
970 | "\n",
971 | "\n",
984 | "
\n",
985 | " \n",
986 | " \n",
987 | " | \n",
988 | " 生徒番号 | \n",
989 | " 学年 | \n",
990 | " 握力 | \n",
991 | " 上体起こし | \n",
992 | " 点数 | \n",
993 | " 順位 | \n",
994 | "
\n",
995 | " \n",
996 | " \n",
997 | " \n",
998 | " count | \n",
999 | " 10.00000 | \n",
1000 | " 10.000000 | \n",
1001 | " 10.000000 | \n",
1002 | " 10.000000 | \n",
1003 | " 10.000000 | \n",
1004 | " 10.00000 | \n",
1005 | "
\n",
1006 | " \n",
1007 | " mean | \n",
1008 | " 5.50000 | \n",
1009 | " 2.100000 | \n",
1010 | " 38.880000 | \n",
1011 | " 28.200000 | \n",
1012 | " 13.000000 | \n",
1013 | " 5.50000 | \n",
1014 | "
\n",
1015 | " \n",
1016 | " std | \n",
1017 | " 3.02765 | \n",
1018 | " 0.875595 | \n",
1019 | " 8.337306 | \n",
1020 | " 6.828047 | \n",
1021 | " 3.651484 | \n",
1022 | " 3.02765 | \n",
1023 | "
\n",
1024 | " \n",
1025 | " min | \n",
1026 | " 1.00000 | \n",
1027 | " 1.000000 | \n",
1028 | " 26.000000 | \n",
1029 | " 14.000000 | \n",
1030 | " 7.000000 | \n",
1031 | " 1.00000 | \n",
1032 | "
\n",
1033 | " \n",
1034 | " 25% | \n",
1035 | " 3.25000 | \n",
1036 | " 1.250000 | \n",
1037 | " 34.775000 | \n",
1038 | " 27.000000 | \n",
1039 | " 10.250000 | \n",
1040 | " 3.25000 | \n",
1041 | "
\n",
1042 | " \n",
1043 | " 50% | \n",
1044 | " 5.50000 | \n",
1045 | " 2.000000 | \n",
1046 | " 37.800000 | \n",
1047 | " 29.500000 | \n",
1048 | " 13.500000 | \n",
1049 | " 5.50000 | \n",
1050 | "
\n",
1051 | " \n",
1052 | " 75% | \n",
1053 | " 7.75000 | \n",
1054 | " 3.000000 | \n",
1055 | " 45.600000 | \n",
1056 | " 32.000000 | \n",
1057 | " 15.750000 | \n",
1058 | " 7.75000 | \n",
1059 | "
\n",
1060 | " \n",
1061 | " max | \n",
1062 | " 10.00000 | \n",
1063 | " 3.000000 | \n",
1064 | " 50.900000 | \n",
1065 | " 37.000000 | \n",
1066 | " 18.000000 | \n",
1067 | " 10.00000 | \n",
1068 | "
\n",
1069 | " \n",
1070 | "
\n",
1071 | "
"
1072 | ],
1073 | "text/plain": [
1074 | " 生徒番号 学年 握力 上体起こし 点数 順位\n",
1075 | "count 10.00000 10.000000 10.000000 10.000000 10.000000 10.00000\n",
1076 | "mean 5.50000 2.100000 38.880000 28.200000 13.000000 5.50000\n",
1077 | "std 3.02765 0.875595 8.337306 6.828047 3.651484 3.02765\n",
1078 | "min 1.00000 1.000000 26.000000 14.000000 7.000000 1.00000\n",
1079 | "25% 3.25000 1.250000 34.775000 27.000000 10.250000 3.25000\n",
1080 | "50% 5.50000 2.000000 37.800000 29.500000 13.500000 5.50000\n",
1081 | "75% 7.75000 3.000000 45.600000 32.000000 15.750000 7.75000\n",
1082 | "max 10.00000 3.000000 50.900000 37.000000 18.000000 10.00000"
1083 | ]
1084 | },
1085 | "execution_count": 15,
1086 | "metadata": {},
1087 | "output_type": "execute_result"
1088 | }
1089 | ],
1090 | "source": [
1091 | "df.describe()"
1092 | ]
1093 | },
1094 | {
1095 | "cell_type": "markdown",
1096 | "metadata": {},
1097 | "source": [
1098 | "# データの追加"
1099 | ]
1100 | },
1101 | {
1102 | "cell_type": "markdown",
1103 | "metadata": {},
1104 | "source": [
1105 | "dfにデータを追加してみましょう \n",
1106 | "まずは列の追加です"
1107 | ]
1108 | },
1109 | {
1110 | "cell_type": "code",
1111 | "execution_count": 16,
1112 | "metadata": {},
1113 | "outputs": [
1114 | {
1115 | "data": {
1116 | "text/html": [
1117 | "\n",
1118 | "\n",
1131 | "
\n",
1132 | " \n",
1133 | " \n",
1134 | " | \n",
1135 | " 生徒番号 | \n",
1136 | " 学年 | \n",
1137 | " 握力 | \n",
1138 | " 上体起こし | \n",
1139 | " 点数 | \n",
1140 | " 順位 | \n",
1141 | " 腕立て伏せ | \n",
1142 | "
\n",
1143 | " \n",
1144 | " \n",
1145 | " \n",
1146 | " 0 | \n",
1147 | " 1 | \n",
1148 | " 1 | \n",
1149 | " 40.2 | \n",
1150 | " 34 | \n",
1151 | " 15 | \n",
1152 | " 4 | \n",
1153 | " 15 | \n",
1154 | "
\n",
1155 | " \n",
1156 | " 1 | \n",
1157 | " 2 | \n",
1158 | " 1 | \n",
1159 | " 34.2 | \n",
1160 | " 14 | \n",
1161 | " 7 | \n",
1162 | " 10 | \n",
1163 | " 12 | \n",
1164 | "
\n",
1165 | " \n",
1166 | " 2 | \n",
1167 | " 3 | \n",
1168 | " 1 | \n",
1169 | " 28.8 | \n",
1170 | " 27 | \n",
1171 | " 11 | \n",
1172 | " 7 | \n",
1173 | " 10 | \n",
1174 | "
\n",
1175 | " \n",
1176 | " 3 | \n",
1177 | " 4 | \n",
1178 | " 2 | \n",
1179 | " 39.0 | \n",
1180 | " 27 | \n",
1181 | " 14 | \n",
1182 | " 5 | \n",
1183 | " 4 | \n",
1184 | "
\n",
1185 | " \n",
1186 | " 4 | \n",
1187 | " 5 | \n",
1188 | " 2 | \n",
1189 | " 50.9 | \n",
1190 | " 32 | \n",
1191 | " 17 | \n",
1192 | " 2 | \n",
1193 | " 20 | \n",
1194 | "
\n",
1195 | " \n",
1196 | " 5 | \n",
1197 | " 6 | \n",
1198 | " 2 | \n",
1199 | " 36.5 | \n",
1200 | " 20 | \n",
1201 | " 9 | \n",
1202 | " 9 | \n",
1203 | " 24 | \n",
1204 | "
\n",
1205 | " \n",
1206 | " 6 | \n",
1207 | " 7 | \n",
1208 | " 3 | \n",
1209 | " 36.6 | \n",
1210 | " 31 | \n",
1211 | " 13 | \n",
1212 | " 6 | \n",
1213 | " 9 | \n",
1214 | "
\n",
1215 | " \n",
1216 | " 7 | \n",
1217 | " 8 | \n",
1218 | " 3 | \n",
1219 | " 49.2 | \n",
1220 | " 37 | \n",
1221 | " 18 | \n",
1222 | " 1 | \n",
1223 | " 11 | \n",
1224 | "
\n",
1225 | " \n",
1226 | " 8 | \n",
1227 | " 9 | \n",
1228 | " 3 | \n",
1229 | " 26.0 | \n",
1230 | " 28 | \n",
1231 | " 10 | \n",
1232 | " 8 | \n",
1233 | " 11 | \n",
1234 | "
\n",
1235 | " \n",
1236 | " 9 | \n",
1237 | " 10 | \n",
1238 | " 3 | \n",
1239 | " 47.4 | \n",
1240 | " 32 | \n",
1241 | " 16 | \n",
1242 | " 3 | \n",
1243 | " 17 | \n",
1244 | "
\n",
1245 | " \n",
1246 | "
\n",
1247 | "
"
1248 | ],
1249 | "text/plain": [
1250 | " 生徒番号 学年 握力 上体起こし 点数 順位 腕立て伏せ\n",
1251 | "0 1 1 40.2 34 15 4 15\n",
1252 | "1 2 1 34.2 14 7 10 12\n",
1253 | "2 3 1 28.8 27 11 7 10\n",
1254 | "3 4 2 39.0 27 14 5 4\n",
1255 | "4 5 2 50.9 32 17 2 20\n",
1256 | "5 6 2 36.5 20 9 9 24\n",
1257 | "6 7 3 36.6 31 13 6 9\n",
1258 | "7 8 3 49.2 37 18 1 11\n",
1259 | "8 9 3 26.0 28 10 8 11\n",
1260 | "9 10 3 47.4 32 16 3 17"
1261 | ]
1262 | },
1263 | "execution_count": 16,
1264 | "metadata": {},
1265 | "output_type": "execute_result"
1266 | }
1267 | ],
1268 | "source": [
1269 | "df['腕立て伏せ'] = [15, 12, 10, 4, 20,\n",
1270 | " 24, 9, 11, 11, 17]\n",
1271 | "df"
1272 | ]
1273 | },
1274 | {
1275 | "cell_type": "markdown",
1276 | "metadata": {},
1277 | "source": [
1278 | "次は行を追加してみます"
1279 | ]
1280 | },
1281 | {
1282 | "cell_type": "code",
1283 | "execution_count": 17,
1284 | "metadata": {},
1285 | "outputs": [
1286 | {
1287 | "data": {
1288 | "text/plain": [
1289 | "生徒番号 11.0\n",
1290 | "学年 3.0\n",
1291 | "握力 42.4\n",
1292 | "上体起こし 30.0\n",
1293 | "点数 15.0\n",
1294 | "順位 11.0\n",
1295 | "腕立て伏せ 12.0\n",
1296 | "Name: 10, dtype: float64"
1297 | ]
1298 | },
1299 | "execution_count": 17,
1300 | "metadata": {},
1301 | "output_type": "execute_result"
1302 | }
1303 | ],
1304 | "source": [
1305 | "new_row = pd.Series([11, 3, 42.4, 30, 15, 11, 12], index=df.columns, name=10)\n",
1306 | "new_row"
1307 | ]
1308 | },
1309 | {
1310 | "cell_type": "code",
1311 | "execution_count": 18,
1312 | "metadata": {},
1313 | "outputs": [
1314 | {
1315 | "data": {
1316 | "text/html": [
1317 | "\n",
1318 | "\n",
1331 | "
\n",
1332 | " \n",
1333 | " \n",
1334 | " | \n",
1335 | " 生徒番号 | \n",
1336 | " 学年 | \n",
1337 | " 握力 | \n",
1338 | " 上体起こし | \n",
1339 | " 点数 | \n",
1340 | " 順位 | \n",
1341 | " 腕立て伏せ | \n",
1342 | "
\n",
1343 | " \n",
1344 | " \n",
1345 | " \n",
1346 | " 0 | \n",
1347 | " 1.0 | \n",
1348 | " 1.0 | \n",
1349 | " 40.2 | \n",
1350 | " 34.0 | \n",
1351 | " 15.0 | \n",
1352 | " 4.0 | \n",
1353 | " 15.0 | \n",
1354 | "
\n",
1355 | " \n",
1356 | " 1 | \n",
1357 | " 2.0 | \n",
1358 | " 1.0 | \n",
1359 | " 34.2 | \n",
1360 | " 14.0 | \n",
1361 | " 7.0 | \n",
1362 | " 10.0 | \n",
1363 | " 12.0 | \n",
1364 | "
\n",
1365 | " \n",
1366 | " 2 | \n",
1367 | " 3.0 | \n",
1368 | " 1.0 | \n",
1369 | " 28.8 | \n",
1370 | " 27.0 | \n",
1371 | " 11.0 | \n",
1372 | " 7.0 | \n",
1373 | " 10.0 | \n",
1374 | "
\n",
1375 | " \n",
1376 | " 3 | \n",
1377 | " 4.0 | \n",
1378 | " 2.0 | \n",
1379 | " 39.0 | \n",
1380 | " 27.0 | \n",
1381 | " 14.0 | \n",
1382 | " 5.0 | \n",
1383 | " 4.0 | \n",
1384 | "
\n",
1385 | " \n",
1386 | " 4 | \n",
1387 | " 5.0 | \n",
1388 | " 2.0 | \n",
1389 | " 50.9 | \n",
1390 | " 32.0 | \n",
1391 | " 17.0 | \n",
1392 | " 2.0 | \n",
1393 | " 20.0 | \n",
1394 | "
\n",
1395 | " \n",
1396 | " 5 | \n",
1397 | " 6.0 | \n",
1398 | " 2.0 | \n",
1399 | " 36.5 | \n",
1400 | " 20.0 | \n",
1401 | " 9.0 | \n",
1402 | " 9.0 | \n",
1403 | " 24.0 | \n",
1404 | "
\n",
1405 | " \n",
1406 | " 6 | \n",
1407 | " 7.0 | \n",
1408 | " 3.0 | \n",
1409 | " 36.6 | \n",
1410 | " 31.0 | \n",
1411 | " 13.0 | \n",
1412 | " 6.0 | \n",
1413 | " 9.0 | \n",
1414 | "
\n",
1415 | " \n",
1416 | " 7 | \n",
1417 | " 8.0 | \n",
1418 | " 3.0 | \n",
1419 | " 49.2 | \n",
1420 | " 37.0 | \n",
1421 | " 18.0 | \n",
1422 | " 1.0 | \n",
1423 | " 11.0 | \n",
1424 | "
\n",
1425 | " \n",
1426 | " 8 | \n",
1427 | " 9.0 | \n",
1428 | " 3.0 | \n",
1429 | " 26.0 | \n",
1430 | " 28.0 | \n",
1431 | " 10.0 | \n",
1432 | " 8.0 | \n",
1433 | " 11.0 | \n",
1434 | "
\n",
1435 | " \n",
1436 | " 9 | \n",
1437 | " 10.0 | \n",
1438 | " 3.0 | \n",
1439 | " 47.4 | \n",
1440 | " 32.0 | \n",
1441 | " 16.0 | \n",
1442 | " 3.0 | \n",
1443 | " 17.0 | \n",
1444 | "
\n",
1445 | " \n",
1446 | " 10 | \n",
1447 | " 11.0 | \n",
1448 | " 3.0 | \n",
1449 | " 42.4 | \n",
1450 | " 30.0 | \n",
1451 | " 15.0 | \n",
1452 | " 11.0 | \n",
1453 | " 12.0 | \n",
1454 | "
\n",
1455 | " \n",
1456 | "
\n",
1457 | "
"
1458 | ],
1459 | "text/plain": [
1460 | " 生徒番号 学年 握力 上体起こし 点数 順位 腕立て伏せ\n",
1461 | "0 1.0 1.0 40.2 34.0 15.0 4.0 15.0\n",
1462 | "1 2.0 1.0 34.2 14.0 7.0 10.0 12.0\n",
1463 | "2 3.0 1.0 28.8 27.0 11.0 7.0 10.0\n",
1464 | "3 4.0 2.0 39.0 27.0 14.0 5.0 4.0\n",
1465 | "4 5.0 2.0 50.9 32.0 17.0 2.0 20.0\n",
1466 | "5 6.0 2.0 36.5 20.0 9.0 9.0 24.0\n",
1467 | "6 7.0 3.0 36.6 31.0 13.0 6.0 9.0\n",
1468 | "7 8.0 3.0 49.2 37.0 18.0 1.0 11.0\n",
1469 | "8 9.0 3.0 26.0 28.0 10.0 8.0 11.0\n",
1470 | "9 10.0 3.0 47.4 32.0 16.0 3.0 17.0\n",
1471 | "10 11.0 3.0 42.4 30.0 15.0 11.0 12.0"
1472 | ]
1473 | },
1474 | "execution_count": 18,
1475 | "metadata": {},
1476 | "output_type": "execute_result"
1477 | }
1478 | ],
1479 | "source": [
1480 | "df.append(new_row)"
1481 | ]
1482 | },
1483 | {
1484 | "cell_type": "code",
1485 | "execution_count": null,
1486 | "metadata": {},
1487 | "outputs": [],
1488 | "source": []
1489 | }
1490 | ],
1491 | "metadata": {
1492 | "kernelspec": {
1493 | "display_name": "Python 3",
1494 | "language": "python",
1495 | "name": "python3"
1496 | },
1497 | "language_info": {
1498 | "codemirror_mode": {
1499 | "name": "ipython",
1500 | "version": 3
1501 | },
1502 | "file_extension": ".py",
1503 | "mimetype": "text/x-python",
1504 | "name": "python",
1505 | "nbconvert_exporter": "python",
1506 | "pygments_lexer": "ipython3",
1507 | "version": "3.6.6"
1508 | },
1509 | "toc": {
1510 | "nav_menu": {},
1511 | "number_sections": true,
1512 | "sideBar": true,
1513 | "skip_h1_title": false,
1514 | "toc_cell": false,
1515 | "toc_position": {},
1516 | "toc_section_display": "block",
1517 | "toc_window_display": false
1518 | }
1519 | },
1520 | "nbformat": 4,
1521 | "nbformat_minor": 2
1522 | }
1523 |
--------------------------------------------------------------------------------
/tutorial/python.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "markdown",
5 | "metadata": {},
6 | "source": [
7 | "- [数値](#数値)\n",
8 | " - [演算](#演算)\n",
9 | " - [変数](#変数)\n",
10 | "- [文字列](#文字列)\n",
11 | " - [文字列の基本](#文字列の基本)\n",
12 | " - [文字列の演算](#文字列の演算)\n",
13 | " - [f-strings](#f-strings)\n",
14 | "- [コメント](#コメント)\n",
15 | "- [リスト](#リスト)\n",
16 | " - [リストの基本](#リストの基本)\n",
17 | " - [リストの演算](#リストの演算)\n",
18 | "- [辞書](#辞書)\n",
19 | "- [if文](#if文)\n",
20 | "- [for文](#for文)\n",
21 | "- [リスト内包表記](#リスト内包表記)\n",
22 | "- [関数](#関数)"
23 | ]
24 | },
25 | {
26 | "cell_type": "markdown",
27 | "metadata": {},
28 | "source": [
29 | "# 数値"
30 | ]
31 | },
32 | {
33 | "cell_type": "markdown",
34 | "metadata": {},
35 | "source": [
36 | "### 演算"
37 | ]
38 | },
39 | {
40 | "cell_type": "markdown",
41 | "metadata": {},
42 | "source": [
43 | "足し算"
44 | ]
45 | },
46 | {
47 | "cell_type": "code",
48 | "execution_count": 1,
49 | "metadata": {},
50 | "outputs": [
51 | {
52 | "data": {
53 | "text/plain": [
54 | "2"
55 | ]
56 | },
57 | "execution_count": 1,
58 | "metadata": {},
59 | "output_type": "execute_result"
60 | }
61 | ],
62 | "source": [
63 | "1 + 1"
64 | ]
65 | },
66 | {
67 | "cell_type": "markdown",
68 | "metadata": {},
69 | "source": [
70 | "掛け算"
71 | ]
72 | },
73 | {
74 | "cell_type": "code",
75 | "execution_count": 2,
76 | "metadata": {},
77 | "outputs": [
78 | {
79 | "data": {
80 | "text/plain": [
81 | "-6"
82 | ]
83 | },
84 | "execution_count": 2,
85 | "metadata": {},
86 | "output_type": "execute_result"
87 | }
88 | ],
89 | "source": [
90 | "2 * -3"
91 | ]
92 | },
93 | {
94 | "cell_type": "markdown",
95 | "metadata": {},
96 | "source": [
97 | "除算"
98 | ]
99 | },
100 | {
101 | "cell_type": "code",
102 | "execution_count": 3,
103 | "metadata": {},
104 | "outputs": [
105 | {
106 | "data": {
107 | "text/plain": [
108 | "1.3333333333333333"
109 | ]
110 | },
111 | "execution_count": 3,
112 | "metadata": {},
113 | "output_type": "execute_result"
114 | }
115 | ],
116 | "source": [
117 | "4 / 3"
118 | ]
119 | },
120 | {
121 | "cell_type": "markdown",
122 | "metadata": {},
123 | "source": [
124 | "除算(切り捨て)"
125 | ]
126 | },
127 | {
128 | "cell_type": "code",
129 | "execution_count": 4,
130 | "metadata": {},
131 | "outputs": [
132 | {
133 | "data": {
134 | "text/plain": [
135 | "1"
136 | ]
137 | },
138 | "execution_count": 4,
139 | "metadata": {},
140 | "output_type": "execute_result"
141 | }
142 | ],
143 | "source": [
144 | "4 // 3"
145 | ]
146 | },
147 | {
148 | "cell_type": "markdown",
149 | "metadata": {},
150 | "source": [
151 | "剰余"
152 | ]
153 | },
154 | {
155 | "cell_type": "code",
156 | "execution_count": 5,
157 | "metadata": {},
158 | "outputs": [
159 | {
160 | "data": {
161 | "text/plain": [
162 | "1"
163 | ]
164 | },
165 | "execution_count": 5,
166 | "metadata": {},
167 | "output_type": "execute_result"
168 | }
169 | ],
170 | "source": [
171 | "4 % 3"
172 | ]
173 | },
174 | {
175 | "cell_type": "markdown",
176 | "metadata": {},
177 | "source": [
178 | "べき乗"
179 | ]
180 | },
181 | {
182 | "cell_type": "code",
183 | "execution_count": 6,
184 | "metadata": {},
185 | "outputs": [
186 | {
187 | "data": {
188 | "text/plain": [
189 | "9"
190 | ]
191 | },
192 | "execution_count": 6,
193 | "metadata": {},
194 | "output_type": "execute_result"
195 | }
196 | ],
197 | "source": [
198 | "3 ** 2"
199 | ]
200 | },
201 | {
202 | "cell_type": "markdown",
203 | "metadata": {},
204 | "source": [
205 | "比較演算子"
206 | ]
207 | },
208 | {
209 | "cell_type": "code",
210 | "execution_count": 7,
211 | "metadata": {},
212 | "outputs": [
213 | {
214 | "data": {
215 | "text/plain": [
216 | "True"
217 | ]
218 | },
219 | "execution_count": 7,
220 | "metadata": {},
221 | "output_type": "execute_result"
222 | }
223 | ],
224 | "source": [
225 | "2 < 3"
226 | ]
227 | },
228 | {
229 | "cell_type": "markdown",
230 | "metadata": {},
231 | "source": [
232 | "### 変数"
233 | ]
234 | },
235 | {
236 | "cell_type": "code",
237 | "execution_count": 8,
238 | "metadata": {},
239 | "outputs": [],
240 | "source": [
241 | "a = 2"
242 | ]
243 | },
244 | {
245 | "cell_type": "code",
246 | "execution_count": 9,
247 | "metadata": {},
248 | "outputs": [
249 | {
250 | "data": {
251 | "text/plain": [
252 | "2"
253 | ]
254 | },
255 | "execution_count": 9,
256 | "metadata": {},
257 | "output_type": "execute_result"
258 | }
259 | ],
260 | "source": [
261 | "a"
262 | ]
263 | },
264 | {
265 | "cell_type": "code",
266 | "execution_count": 10,
267 | "metadata": {},
268 | "outputs": [
269 | {
270 | "data": {
271 | "text/plain": [
272 | "5"
273 | ]
274 | },
275 | "execution_count": 10,
276 | "metadata": {},
277 | "output_type": "execute_result"
278 | }
279 | ],
280 | "source": [
281 | "a = a + 3\n",
282 | "a"
283 | ]
284 | },
285 | {
286 | "cell_type": "code",
287 | "execution_count": 11,
288 | "metadata": {},
289 | "outputs": [
290 | {
291 | "data": {
292 | "text/plain": [
293 | "2.5"
294 | ]
295 | },
296 | "execution_count": 11,
297 | "metadata": {},
298 | "output_type": "execute_result"
299 | }
300 | ],
301 | "source": [
302 | "a /= 2\n",
303 | "a"
304 | ]
305 | },
306 | {
307 | "cell_type": "markdown",
308 | "metadata": {},
309 | "source": [
310 | "# 文字列"
311 | ]
312 | },
313 | {
314 | "cell_type": "markdown",
315 | "metadata": {},
316 | "source": [
317 | "### 文字列の基本"
318 | ]
319 | },
320 | {
321 | "cell_type": "markdown",
322 | "metadata": {},
323 | "source": [
324 | "文字列はシングルクォーテーションで囲みます"
325 | ]
326 | },
327 | {
328 | "cell_type": "code",
329 | "execution_count": 12,
330 | "metadata": {},
331 | "outputs": [
332 | {
333 | "data": {
334 | "text/plain": [
335 | "'Hello World!'"
336 | ]
337 | },
338 | "execution_count": 12,
339 | "metadata": {},
340 | "output_type": "execute_result"
341 | }
342 | ],
343 | "source": [
344 | "'Hello World!'"
345 | ]
346 | },
347 | {
348 | "cell_type": "markdown",
349 | "metadata": {},
350 | "source": [
351 | "ダブルクォーテーションでも同じですが、本書ではシングルクォーテーションを採用しています"
352 | ]
353 | },
354 | {
355 | "cell_type": "code",
356 | "execution_count": 13,
357 | "metadata": {},
358 | "outputs": [
359 | {
360 | "data": {
361 | "text/plain": [
362 | "'Hello World!'"
363 | ]
364 | },
365 | "execution_count": 13,
366 | "metadata": {},
367 | "output_type": "execute_result"
368 | }
369 | ],
370 | "source": [
371 | "\"Hello World!\""
372 | ]
373 | },
374 | {
375 | "cell_type": "markdown",
376 | "metadata": {},
377 | "source": [
378 | "日本語も同様に扱うことができます"
379 | ]
380 | },
381 | {
382 | "cell_type": "code",
383 | "execution_count": 14,
384 | "metadata": {},
385 | "outputs": [
386 | {
387 | "data": {
388 | "text/plain": [
389 | "'こんにちは世界!'"
390 | ]
391 | },
392 | "execution_count": 14,
393 | "metadata": {},
394 | "output_type": "execute_result"
395 | }
396 | ],
397 | "source": [
398 | "'こんにちは世界!'"
399 | ]
400 | },
401 | {
402 | "cell_type": "markdown",
403 | "metadata": {},
404 | "source": [
405 | "print文でも表示できます"
406 | ]
407 | },
408 | {
409 | "cell_type": "code",
410 | "execution_count": 15,
411 | "metadata": {},
412 | "outputs": [
413 | {
414 | "name": "stdout",
415 | "output_type": "stream",
416 | "text": [
417 | "Hello World\n"
418 | ]
419 | }
420 | ],
421 | "source": [
422 | "print('Hello', 'World')"
423 | ]
424 | },
425 | {
426 | "cell_type": "markdown",
427 | "metadata": {},
428 | "source": [
429 | "## 文字列の演算"
430 | ]
431 | },
432 | {
433 | "cell_type": "code",
434 | "execution_count": 16,
435 | "metadata": {},
436 | "outputs": [],
437 | "source": [
438 | "a = 'Hello'\n",
439 | "b = 'World'"
440 | ]
441 | },
442 | {
443 | "cell_type": "markdown",
444 | "metadata": {},
445 | "source": [
446 | "文字列は+で結合できます"
447 | ]
448 | },
449 | {
450 | "cell_type": "code",
451 | "execution_count": 17,
452 | "metadata": {},
453 | "outputs": [
454 | {
455 | "data": {
456 | "text/plain": [
457 | "'HelloWorld'"
458 | ]
459 | },
460 | "execution_count": 17,
461 | "metadata": {},
462 | "output_type": "execute_result"
463 | }
464 | ],
465 | "source": [
466 | "a + b"
467 | ]
468 | },
469 | {
470 | "cell_type": "markdown",
471 | "metadata": {},
472 | "source": [
473 | "スライスで文字列の一部分を抽出できます \n",
474 | "2文字目まで抽出してみます"
475 | ]
476 | },
477 | {
478 | "cell_type": "code",
479 | "execution_count": 18,
480 | "metadata": {},
481 | "outputs": [
482 | {
483 | "data": {
484 | "text/plain": [
485 | "'He'"
486 | ]
487 | },
488 | "execution_count": 18,
489 | "metadata": {},
490 | "output_type": "execute_result"
491 | }
492 | ],
493 | "source": [
494 | "a[:2]"
495 | ]
496 | },
497 | {
498 | "cell_type": "markdown",
499 | "metadata": {},
500 | "source": [
501 | "3文字目から4文字目まで"
502 | ]
503 | },
504 | {
505 | "cell_type": "code",
506 | "execution_count": 19,
507 | "metadata": {},
508 | "outputs": [
509 | {
510 | "data": {
511 | "text/plain": [
512 | "'ll'"
513 | ]
514 | },
515 | "execution_count": 19,
516 | "metadata": {},
517 | "output_type": "execute_result"
518 | }
519 | ],
520 | "source": [
521 | "a[2:4]"
522 | ]
523 | },
524 | {
525 | "cell_type": "markdown",
526 | "metadata": {},
527 | "source": [
528 | "### f-strings"
529 | ]
530 | },
531 | {
532 | "cell_type": "markdown",
533 | "metadata": {},
534 | "source": [
535 | "Python3.6からはf-stringsという機能が使えます"
536 | ]
537 | },
538 | {
539 | "cell_type": "code",
540 | "execution_count": 20,
541 | "metadata": {},
542 | "outputs": [],
543 | "source": [
544 | "a = 'test'\n",
545 | "b = 3"
546 | ]
547 | },
548 | {
549 | "cell_type": "markdown",
550 | "metadata": {},
551 | "source": [
552 | "f-stringsを使うと、文字列の中に変数をそのまま出力できます"
553 | ]
554 | },
555 | {
556 | "cell_type": "code",
557 | "execution_count": 21,
558 | "metadata": {},
559 | "outputs": [
560 | {
561 | "data": {
562 | "text/plain": [
563 | "'test is 3'"
564 | ]
565 | },
566 | "execution_count": 21,
567 | "metadata": {},
568 | "output_type": "execute_result"
569 | }
570 | ],
571 | "source": [
572 | "f'{a} is {b}'"
573 | ]
574 | },
575 | {
576 | "cell_type": "code",
577 | "execution_count": 22,
578 | "metadata": {},
579 | "outputs": [
580 | {
581 | "data": {
582 | "text/plain": [
583 | "14.285714285714286"
584 | ]
585 | },
586 | "execution_count": 22,
587 | "metadata": {},
588 | "output_type": "execute_result"
589 | }
590 | ],
591 | "source": [
592 | "c = 100 / 7\n",
593 | "c"
594 | ]
595 | },
596 | {
597 | "cell_type": "markdown",
598 | "metadata": {},
599 | "source": [
600 | "次のようにすることで桁数を調整できます"
601 | ]
602 | },
603 | {
604 | "cell_type": "code",
605 | "execution_count": 23,
606 | "metadata": {},
607 | "outputs": [
608 | {
609 | "data": {
610 | "text/plain": [
611 | "'14.29'"
612 | ]
613 | },
614 | "execution_count": 23,
615 | "metadata": {},
616 | "output_type": "execute_result"
617 | }
618 | ],
619 | "source": [
620 | "f'{c:.2f}'"
621 | ]
622 | },
623 | {
624 | "cell_type": "markdown",
625 | "metadata": {},
626 | "source": [
627 | "詳しくは\n",
628 | "https://note.nkmk.me/python-f-strings/\n",
629 | "などを参考にするといいでしょう。"
630 | ]
631 | },
632 | {
633 | "cell_type": "markdown",
634 | "metadata": {},
635 | "source": [
636 | "# コメント"
637 | ]
638 | },
639 | {
640 | "cell_type": "markdown",
641 | "metadata": {},
642 | "source": [
643 | "#以降の文字はコメント扱いになります"
644 | ]
645 | },
646 | {
647 | "cell_type": "code",
648 | "execution_count": 24,
649 | "metadata": {},
650 | "outputs": [
651 | {
652 | "data": {
653 | "text/plain": [
654 | "7"
655 | ]
656 | },
657 | "execution_count": 24,
658 | "metadata": {},
659 | "output_type": "execute_result"
660 | }
661 | ],
662 | "source": [
663 | "a = 3 + 4\n",
664 | "# この行はコードに影響しない\n",
665 | "a"
666 | ]
667 | },
668 | {
669 | "cell_type": "code",
670 | "execution_count": 25,
671 | "metadata": {},
672 | "outputs": [
673 | {
674 | "data": {
675 | "text/plain": [
676 | "8"
677 | ]
678 | },
679 | "execution_count": 25,
680 | "metadata": {},
681 | "output_type": "execute_result"
682 | }
683 | ],
684 | "source": [
685 | "b = 2 * 4 # ここに書いても大丈夫\n",
686 | "b"
687 | ]
688 | },
689 | {
690 | "cell_type": "markdown",
691 | "metadata": {},
692 | "source": [
693 | "# リスト"
694 | ]
695 | },
696 | {
697 | "cell_type": "markdown",
698 | "metadata": {},
699 | "source": [
700 | "## リストの基本"
701 | ]
702 | },
703 | {
704 | "cell_type": "markdown",
705 | "metadata": {},
706 | "source": [
707 | "Pythonのリストは[]で囲みます"
708 | ]
709 | },
710 | {
711 | "cell_type": "code",
712 | "execution_count": 26,
713 | "metadata": {},
714 | "outputs": [
715 | {
716 | "data": {
717 | "text/plain": [
718 | "[2, 3, 4]"
719 | ]
720 | },
721 | "execution_count": 26,
722 | "metadata": {},
723 | "output_type": "execute_result"
724 | }
725 | ],
726 | "source": [
727 | "[2, 3, 4]"
728 | ]
729 | },
730 | {
731 | "cell_type": "markdown",
732 | "metadata": {},
733 | "source": [
734 | "リストの要素は同じ種類でなくても問題ありません"
735 | ]
736 | },
737 | {
738 | "cell_type": "code",
739 | "execution_count": 27,
740 | "metadata": {},
741 | "outputs": [
742 | {
743 | "data": {
744 | "text/plain": [
745 | "[2, 'もじれつ', [2, 3]]"
746 | ]
747 | },
748 | "execution_count": 27,
749 | "metadata": {},
750 | "output_type": "execute_result"
751 | }
752 | ],
753 | "source": [
754 | "[2, 'もじれつ', [2, 3]]"
755 | ]
756 | },
757 | {
758 | "cell_type": "markdown",
759 | "metadata": {},
760 | "source": [
761 | "リストを入れ子にすることで多次元配列を作れます"
762 | ]
763 | },
764 | {
765 | "cell_type": "code",
766 | "execution_count": 28,
767 | "metadata": {},
768 | "outputs": [
769 | {
770 | "data": {
771 | "text/plain": [
772 | "[[1, 2], [2, 3]]"
773 | ]
774 | },
775 | "execution_count": 28,
776 | "metadata": {},
777 | "output_type": "execute_result"
778 | }
779 | ],
780 | "source": [
781 | "[[1, 2], [2, 3]]"
782 | ]
783 | },
784 | {
785 | "cell_type": "markdown",
786 | "metadata": {},
787 | "source": [
788 | "## リストの演算"
789 | ]
790 | },
791 | {
792 | "cell_type": "code",
793 | "execution_count": 29,
794 | "metadata": {},
795 | "outputs": [],
796 | "source": [
797 | "a = [1, 2, 3]\n",
798 | "b = [3, 4, 5, 6]"
799 | ]
800 | },
801 | {
802 | "cell_type": "markdown",
803 | "metadata": {},
804 | "source": [
805 | "リストを結合"
806 | ]
807 | },
808 | {
809 | "cell_type": "code",
810 | "execution_count": 30,
811 | "metadata": {},
812 | "outputs": [
813 | {
814 | "data": {
815 | "text/plain": [
816 | "[1, 2, 3, 3, 4, 5, 6]"
817 | ]
818 | },
819 | "execution_count": 30,
820 | "metadata": {},
821 | "output_type": "execute_result"
822 | }
823 | ],
824 | "source": [
825 | "a + b"
826 | ]
827 | },
828 | {
829 | "cell_type": "markdown",
830 | "metadata": {},
831 | "source": [
832 | "リストへ追加"
833 | ]
834 | },
835 | {
836 | "cell_type": "code",
837 | "execution_count": 31,
838 | "metadata": {},
839 | "outputs": [
840 | {
841 | "data": {
842 | "text/plain": [
843 | "[1, 2, 3, 3]"
844 | ]
845 | },
846 | "execution_count": 31,
847 | "metadata": {},
848 | "output_type": "execute_result"
849 | }
850 | ],
851 | "source": [
852 | "a.append(3)\n",
853 | "a"
854 | ]
855 | },
856 | {
857 | "cell_type": "markdown",
858 | "metadata": {},
859 | "source": [
860 | "スライス"
861 | ]
862 | },
863 | {
864 | "cell_type": "code",
865 | "execution_count": 32,
866 | "metadata": {},
867 | "outputs": [
868 | {
869 | "data": {
870 | "text/plain": [
871 | "[3, 4, 5]"
872 | ]
873 | },
874 | "execution_count": 32,
875 | "metadata": {},
876 | "output_type": "execute_result"
877 | }
878 | ],
879 | "source": [
880 | "b[:3]"
881 | ]
882 | },
883 | {
884 | "cell_type": "code",
885 | "execution_count": 33,
886 | "metadata": {},
887 | "outputs": [
888 | {
889 | "data": {
890 | "text/plain": [
891 | "[4, 5]"
892 | ]
893 | },
894 | "execution_count": 33,
895 | "metadata": {},
896 | "output_type": "execute_result"
897 | }
898 | ],
899 | "source": [
900 | "b[1:3]"
901 | ]
902 | },
903 | {
904 | "cell_type": "markdown",
905 | "metadata": {},
906 | "source": [
907 | "# 辞書"
908 | ]
909 | },
910 | {
911 | "cell_type": "code",
912 | "execution_count": 34,
913 | "metadata": {},
914 | "outputs": [
915 | {
916 | "data": {
917 | "text/plain": [
918 | "{'python': 2, '統計': 3}"
919 | ]
920 | },
921 | "execution_count": 34,
922 | "metadata": {},
923 | "output_type": "execute_result"
924 | }
925 | ],
926 | "source": [
927 | "d = {'python': 2, '統計': 3}\n",
928 | "d"
929 | ]
930 | },
931 | {
932 | "cell_type": "code",
933 | "execution_count": 35,
934 | "metadata": {},
935 | "outputs": [
936 | {
937 | "data": {
938 | "text/plain": [
939 | "2"
940 | ]
941 | },
942 | "execution_count": 35,
943 | "metadata": {},
944 | "output_type": "execute_result"
945 | }
946 | ],
947 | "source": [
948 | "d['python']"
949 | ]
950 | },
951 | {
952 | "cell_type": "code",
953 | "execution_count": 36,
954 | "metadata": {},
955 | "outputs": [
956 | {
957 | "data": {
958 | "text/plain": [
959 | "dict_keys(['python', '統計'])"
960 | ]
961 | },
962 | "execution_count": 36,
963 | "metadata": {},
964 | "output_type": "execute_result"
965 | }
966 | ],
967 | "source": [
968 | "d.keys()"
969 | ]
970 | },
971 | {
972 | "cell_type": "code",
973 | "execution_count": 37,
974 | "metadata": {},
975 | "outputs": [
976 | {
977 | "data": {
978 | "text/plain": [
979 | "dict_values([2, 3])"
980 | ]
981 | },
982 | "execution_count": 37,
983 | "metadata": {},
984 | "output_type": "execute_result"
985 | }
986 | ],
987 | "source": [
988 | "d.values()"
989 | ]
990 | },
991 | {
992 | "cell_type": "markdown",
993 | "metadata": {},
994 | "source": [
995 | "# if文"
996 | ]
997 | },
998 | {
999 | "cell_type": "code",
1000 | "execution_count": 38,
1001 | "metadata": {},
1002 | "outputs": [
1003 | {
1004 | "name": "stdout",
1005 | "output_type": "stream",
1006 | "text": [
1007 | "2は3より小さい\n"
1008 | ]
1009 | }
1010 | ],
1011 | "source": [
1012 | "x = 2\n",
1013 | "if x < 3:\n",
1014 | " print(f'{x}は3より小さい')\n",
1015 | "else:\n",
1016 | " print(f'{x}は3以上')"
1017 | ]
1018 | },
1019 | {
1020 | "cell_type": "markdown",
1021 | "metadata": {},
1022 | "source": [
1023 | "# for文"
1024 | ]
1025 | },
1026 | {
1027 | "cell_type": "code",
1028 | "execution_count": 39,
1029 | "metadata": {},
1030 | "outputs": [
1031 | {
1032 | "name": "stdout",
1033 | "output_type": "stream",
1034 | "text": [
1035 | "0\n",
1036 | "1\n",
1037 | "2\n",
1038 | "3\n",
1039 | "4\n"
1040 | ]
1041 | }
1042 | ],
1043 | "source": [
1044 | "for i in range(5):\n",
1045 | " print(i)"
1046 | ]
1047 | },
1048 | {
1049 | "cell_type": "markdown",
1050 | "metadata": {},
1051 | "source": [
1052 | "# リスト内包表記"
1053 | ]
1054 | },
1055 | {
1056 | "cell_type": "markdown",
1057 | "metadata": {},
1058 | "source": [
1059 | "たとえば0から8までの偶数のリストを作りたいとき"
1060 | ]
1061 | },
1062 | {
1063 | "cell_type": "code",
1064 | "execution_count": 40,
1065 | "metadata": {},
1066 | "outputs": [
1067 | {
1068 | "data": {
1069 | "text/plain": [
1070 | "[0, 2, 4, 6, 8]"
1071 | ]
1072 | },
1073 | "execution_count": 40,
1074 | "metadata": {},
1075 | "output_type": "execute_result"
1076 | }
1077 | ],
1078 | "source": [
1079 | "a = []\n",
1080 | "for i in range(5):\n",
1081 | " a.append(2 * i)\n",
1082 | " \n",
1083 | "a"
1084 | ]
1085 | },
1086 | {
1087 | "cell_type": "code",
1088 | "execution_count": 41,
1089 | "metadata": {},
1090 | "outputs": [
1091 | {
1092 | "data": {
1093 | "text/plain": [
1094 | "[0, 2, 4, 6, 8]"
1095 | ]
1096 | },
1097 | "execution_count": 41,
1098 | "metadata": {},
1099 | "output_type": "execute_result"
1100 | }
1101 | ],
1102 | "source": [
1103 | "[2 * i for i in range(5)]"
1104 | ]
1105 | },
1106 | {
1107 | "cell_type": "code",
1108 | "execution_count": 42,
1109 | "metadata": {},
1110 | "outputs": [
1111 | {
1112 | "data": {
1113 | "text/plain": [
1114 | "[0, 2, 4, 6, 8]"
1115 | ]
1116 | },
1117 | "execution_count": 42,
1118 | "metadata": {},
1119 | "output_type": "execute_result"
1120 | }
1121 | ],
1122 | "source": [
1123 | "[i for i in range(10) if i % 2 == 0]"
1124 | ]
1125 | },
1126 | {
1127 | "cell_type": "code",
1128 | "execution_count": 43,
1129 | "metadata": {},
1130 | "outputs": [
1131 | {
1132 | "data": {
1133 | "text/plain": [
1134 | "[0, 1, 2, 1, 4, 1, 6, 1, 8, 1]"
1135 | ]
1136 | },
1137 | "execution_count": 43,
1138 | "metadata": {},
1139 | "output_type": "execute_result"
1140 | }
1141 | ],
1142 | "source": [
1143 | "[i if i%2 == 0 else 1 for i in range(10)]"
1144 | ]
1145 | },
1146 | {
1147 | "cell_type": "markdown",
1148 | "metadata": {},
1149 | "source": [
1150 | "# 関数"
1151 | ]
1152 | },
1153 | {
1154 | "cell_type": "code",
1155 | "execution_count": 44,
1156 | "metadata": {},
1157 | "outputs": [],
1158 | "source": [
1159 | "def test(a, b):\n",
1160 | " return a + b"
1161 | ]
1162 | },
1163 | {
1164 | "cell_type": "code",
1165 | "execution_count": 45,
1166 | "metadata": {},
1167 | "outputs": [
1168 | {
1169 | "data": {
1170 | "text/plain": [
1171 | "5"
1172 | ]
1173 | },
1174 | "execution_count": 45,
1175 | "metadata": {},
1176 | "output_type": "execute_result"
1177 | }
1178 | ],
1179 | "source": [
1180 | "test(2, 3)"
1181 | ]
1182 | },
1183 | {
1184 | "cell_type": "code",
1185 | "execution_count": null,
1186 | "metadata": {},
1187 | "outputs": [],
1188 | "source": []
1189 | }
1190 | ],
1191 | "metadata": {
1192 | "kernelspec": {
1193 | "display_name": "Python 3",
1194 | "language": "python",
1195 | "name": "python3"
1196 | },
1197 | "language_info": {
1198 | "codemirror_mode": {
1199 | "name": "ipython",
1200 | "version": 3
1201 | },
1202 | "file_extension": ".py",
1203 | "mimetype": "text/x-python",
1204 | "name": "python",
1205 | "nbconvert_exporter": "python",
1206 | "pygments_lexer": "ipython3",
1207 | "version": "3.6.6"
1208 | }
1209 | },
1210 | "nbformat": 4,
1211 | "nbformat_minor": 2
1212 | }
1213 |
--------------------------------------------------------------------------------