├── .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 | " \n", 74 | " \n", 75 | " \n", 76 | " \n", 77 | " \n", 78 | " \n", 79 | " \n", 80 | " \n", 81 | " \n", 82 | " \n", 83 | " \n", 84 | " \n", 85 | " \n", 86 | " \n", 87 | " \n", 88 | " \n", 89 | " \n", 90 | " \n", 91 | " \n", 92 | " \n", 93 | " \n", 94 | " \n", 95 | " \n", 96 | " \n", 97 | " \n", 98 | " \n", 99 | " \n", 100 | " \n", 101 | " \n", 102 | " \n", 103 | " \n", 104 | " \n", 105 | " \n", 106 | " \n", 107 | " \n", 108 | " \n", 109 | " \n", 110 | " \n", 111 | " \n", 112 | " \n", 113 | " \n", 114 | " \n", 115 | " \n", 116 | " \n", 117 | " \n", 118 | " \n", 119 | " \n", 120 | " \n", 121 | " \n", 122 | " \n", 123 | " \n", 124 | " \n", 125 | " \n", 126 | " \n", 127 | " \n", 128 | " \n", 129 | " \n", 130 | " \n", 131 | " \n", 132 | " \n", 133 | " \n", 134 | " \n", 135 | " \n", 136 | " \n", 137 | " \n", 138 | " \n", 139 | " \n", 140 | " \n", 141 | " \n", 142 | " \n", 143 | " \n", 144 | " \n", 145 | " \n", 146 | " \n", 147 | " \n", 148 | " \n", 149 | " \n", 150 | " \n", 151 | " \n", 152 | " \n", 153 | "
学年握力上体起こし点数順位
生徒番号
1140.234154
2134.214710
3128.827117
4239.027145
5250.932172
6236.52099
7336.631136
8349.237181
9326.028108
10347.432163
\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 | ![](images/notebook1.png) 119 | 120 | notebookは次のようにして立ち上げることができます。 121 | 122 | ![](images/notebook2.png) 123 | 124 | notebookが立ち上がると次のようになります。 125 | ここにコードを記述すると実行できるようになります。 126 | 127 | ![](images/notebook3.png) 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 | ![](images/notebook1.png) 117 | 118 | notebookは次のようにして立ち上げることができます。 119 | 120 | ![](images/notebook2.png) 121 | 122 | notebookが立ち上がると次のようになります。 123 | ここにコードを記述すると実行できるようになります。 124 | 125 | ![](images/notebook3.png) 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 | ![](images/notebook1.png) 88 | 89 | notebookは次のようにして立ち上げることができます。 90 | ![](images/notebook2.png) 91 | 92 | notebookが立ち上がると次のようになります。 93 | ここにコードを記述すると実行できるようになります。 94 | ![](images/notebook3.png) 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 | " \n", 69 | " \n", 70 | " \n", 71 | " \n", 72 | " \n", 73 | " \n", 74 | " \n", 75 | " \n", 76 | " \n", 77 | " \n", 78 | " \n", 79 | " \n", 80 | " \n", 81 | " \n", 82 | " \n", 83 | " \n", 84 | " \n", 85 | " \n", 86 | " \n", 87 | " \n", 88 | " \n", 89 | " \n", 90 | " \n", 91 | " \n", 92 | " \n", 93 | " \n", 94 | " \n", 95 | " \n", 96 | " \n", 97 | " \n", 98 | " \n", 99 | " \n", 100 | " \n", 101 | " \n", 102 | " \n", 103 | " \n", 104 | " \n", 105 | " \n", 106 | " \n", 107 | " \n", 108 | " \n", 109 | " \n", 110 | " \n", 111 | " \n", 112 | " \n", 113 | " \n", 114 | " \n", 115 | " \n", 116 | " \n", 117 | " \n", 118 | " \n", 119 | " \n", 120 | " \n", 121 | " \n", 122 | " \n", 123 | " \n", 124 | " \n", 125 | " \n", 126 | " \n", 127 | " \n", 128 | " \n", 129 | " \n", 130 | " \n", 131 | " \n", 132 | " \n", 133 | " \n", 134 | " \n", 135 | " \n", 136 | " \n", 137 | " \n", 138 | " \n", 139 | " \n", 140 | " \n", 141 | " \n", 142 | " \n", 143 | " \n", 144 | " \n", 145 | " \n", 146 | " \n", 147 | " \n", 148 | " \n", 149 | " \n", 150 | " \n", 151 | " \n", 152 | " \n", 153 | " \n", 154 | " \n", 155 | " \n", 156 | " \n", 157 | " \n", 158 | "
生徒番号学年握力上体起こし点数順位
01140.234154
12134.214710
23128.827117
34239.027145
45250.932172
56236.52099
67336.631136
78349.237181
89326.028108
910347.432163
\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 | " \n", 239 | " \n", 240 | " \n", 241 | " \n", 242 | " \n", 243 | " \n", 244 | " \n", 245 | " \n", 246 | " \n", 247 | " \n", 248 | " \n", 249 | " \n", 250 | " \n", 251 | " \n", 252 | " \n", 253 | " \n", 254 | " \n", 255 | " \n", 256 | " \n", 257 | " \n", 258 | " \n", 259 | " \n", 260 | " \n", 261 | " \n", 262 | " \n", 263 | " \n", 264 | " \n", 265 | "
生徒番号学年握力上体起こし点数順位
01140.234154
12134.214710
23128.827117
\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 | " \n", 328 | " \n", 329 | " \n", 330 | " \n", 331 | " \n", 332 | " \n", 333 | " \n", 334 | " \n", 335 | " \n", 336 | " \n", 337 | " \n", 338 | " \n", 339 | " \n", 340 | " \n", 341 | " \n", 342 | " \n", 343 | " \n", 344 | " \n", 345 | " \n", 346 | " \n", 347 | " \n", 348 | " \n", 349 | " \n", 350 | " \n", 351 | " \n", 352 | " \n", 353 | " \n", 354 | " \n", 355 | " \n", 356 | " \n", 357 | " \n", 358 | " \n", 359 | " \n", 360 | " \n", 361 | " \n", 362 | " \n", 363 | " \n", 364 | " \n", 365 | " \n", 366 | " \n", 367 | " \n", 368 | " \n", 369 | " \n", 370 | " \n", 371 | " \n", 372 | "
生徒番号学年握力上体起こし点数順位
01140.234154
12134.214710
23128.827117
34239.027145
45250.932172
\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 | " \n", 437 | " \n", 438 | " \n", 439 | " \n", 440 | " \n", 441 | " \n", 442 | " \n", 443 | " \n", 444 | " \n", 445 | " \n", 446 | " \n", 447 | " \n", 448 | " \n", 449 | " \n", 450 | " \n", 451 | " \n", 452 | " \n", 453 | " \n", 454 | " \n", 455 | " \n", 456 | " \n", 457 | " \n", 458 | " \n", 459 | " \n", 460 | " \n", 461 | " \n", 462 | " \n", 463 | " \n", 464 | " \n", 465 | " \n", 466 | " \n", 467 | " \n", 468 | " \n", 469 | " \n", 470 | " \n", 471 | " \n", 472 | " \n", 473 | " \n", 474 | " \n", 475 | " \n", 476 | " \n", 477 | " \n", 478 | " \n", 479 | " \n", 480 | " \n", 481 | "
生徒番号学年握力上体起こし点数順位
56236.52099
67336.631136
78349.237181
89326.028108
910347.432163
\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 | " \n", 546 | " \n", 547 | " \n", 548 | " \n", 549 | " \n", 550 | " \n", 551 | " \n", 552 | " \n", 553 | " \n", 554 | " \n", 555 | " \n", 556 | " \n", 557 | " \n", 558 | " \n", 559 | " \n", 560 | " \n", 561 | " \n", 562 | " \n", 563 | " \n", 564 | " \n", 565 | " \n", 566 | " \n", 567 | " \n", 568 | " \n", 569 | " \n", 570 | " \n", 571 | " \n", 572 | "
生徒番号学年握力上体起こし点数順位
23128.827117
34239.027145
45250.932172
\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 | " \n", 668 | " \n", 669 | " \n", 670 | " \n", 671 | " \n", 672 | " \n", 673 | " \n", 674 | " \n", 675 | " \n", 676 | " \n", 677 | " \n", 678 | " \n", 679 | " \n", 680 | " \n", 681 | " \n", 682 | " \n", 683 | " \n", 684 | " \n", 685 | " \n", 686 | " \n", 687 | " \n", 688 | " \n", 689 | " \n", 690 | " \n", 691 | " \n", 692 | " \n", 693 | " \n", 694 | " \n", 695 | " \n", 696 | " \n", 697 | " \n", 698 | " \n", 699 | " \n", 700 | " \n", 701 | " \n", 702 | " \n", 703 | " \n", 704 | " \n", 705 | " \n", 706 | " \n", 707 | " \n", 708 | " \n", 709 | " \n", 710 | " \n", 711 | " \n", 712 | " \n", 713 | " \n", 714 | " \n", 715 | " \n", 716 | " \n", 717 | "
学年点数
0115
117
2111
3214
4217
529
6313
7318
8310
9316
\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 | " \n", 846 | " \n", 847 | " \n", 848 | " \n", 849 | " \n", 850 | " \n", 851 | " \n", 852 | " \n", 853 | " \n", 854 | " \n", 855 | " \n", 856 | " \n", 857 | " \n", 858 | " \n", 859 | " \n", 860 | " \n", 861 | " \n", 862 | " \n", 863 | "
生徒番号学年握力上体起こし点数順位
23128.827117
89326.028108
\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 | " \n", 999 | " \n", 1000 | " \n", 1001 | " \n", 1002 | " \n", 1003 | " \n", 1004 | " \n", 1005 | " \n", 1006 | " \n", 1007 | " \n", 1008 | " \n", 1009 | " \n", 1010 | " \n", 1011 | " \n", 1012 | " \n", 1013 | " \n", 1014 | " \n", 1015 | " \n", 1016 | " \n", 1017 | " \n", 1018 | " \n", 1019 | " \n", 1020 | " \n", 1021 | " \n", 1022 | " \n", 1023 | " \n", 1024 | " \n", 1025 | " \n", 1026 | " \n", 1027 | " \n", 1028 | " \n", 1029 | " \n", 1030 | " \n", 1031 | " \n", 1032 | " \n", 1033 | " \n", 1034 | " \n", 1035 | " \n", 1036 | " \n", 1037 | " \n", 1038 | " \n", 1039 | " \n", 1040 | " \n", 1041 | " \n", 1042 | " \n", 1043 | " \n", 1044 | " \n", 1045 | " \n", 1046 | " \n", 1047 | " \n", 1048 | " \n", 1049 | " \n", 1050 | " \n", 1051 | " \n", 1052 | " \n", 1053 | " \n", 1054 | " \n", 1055 | " \n", 1056 | " \n", 1057 | " \n", 1058 | " \n", 1059 | " \n", 1060 | " \n", 1061 | " \n", 1062 | " \n", 1063 | " \n", 1064 | " \n", 1065 | " \n", 1066 | " \n", 1067 | " \n", 1068 | " \n", 1069 | " \n", 1070 | "
生徒番号学年握力上体起こし点数順位
count10.0000010.00000010.00000010.00000010.00000010.00000
mean5.500002.10000038.88000028.20000013.0000005.50000
std3.027650.8755958.3373066.8280473.6514843.02765
min1.000001.00000026.00000014.0000007.0000001.00000
25%3.250001.25000034.77500027.00000010.2500003.25000
50%5.500002.00000037.80000029.50000013.5000005.50000
75%7.750003.00000045.60000032.00000015.7500007.75000
max10.000003.00000050.90000037.00000018.00000010.00000
\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 | " \n", 1147 | " \n", 1148 | " \n", 1149 | " \n", 1150 | " \n", 1151 | " \n", 1152 | " \n", 1153 | " \n", 1154 | " \n", 1155 | " \n", 1156 | " \n", 1157 | " \n", 1158 | " \n", 1159 | " \n", 1160 | " \n", 1161 | " \n", 1162 | " \n", 1163 | " \n", 1164 | " \n", 1165 | " \n", 1166 | " \n", 1167 | " \n", 1168 | " \n", 1169 | " \n", 1170 | " \n", 1171 | " \n", 1172 | " \n", 1173 | " \n", 1174 | " \n", 1175 | " \n", 1176 | " \n", 1177 | " \n", 1178 | " \n", 1179 | " \n", 1180 | " \n", 1181 | " \n", 1182 | " \n", 1183 | " \n", 1184 | " \n", 1185 | " \n", 1186 | " \n", 1187 | " \n", 1188 | " \n", 1189 | " \n", 1190 | " \n", 1191 | " \n", 1192 | " \n", 1193 | " \n", 1194 | " \n", 1195 | " \n", 1196 | " \n", 1197 | " \n", 1198 | " \n", 1199 | " \n", 1200 | " \n", 1201 | " \n", 1202 | " \n", 1203 | " \n", 1204 | " \n", 1205 | " \n", 1206 | " \n", 1207 | " \n", 1208 | " \n", 1209 | " \n", 1210 | " \n", 1211 | " \n", 1212 | " \n", 1213 | " \n", 1214 | " \n", 1215 | " \n", 1216 | " \n", 1217 | " \n", 1218 | " \n", 1219 | " \n", 1220 | " \n", 1221 | " \n", 1222 | " \n", 1223 | " \n", 1224 | " \n", 1225 | " \n", 1226 | " \n", 1227 | " \n", 1228 | " \n", 1229 | " \n", 1230 | " \n", 1231 | " \n", 1232 | " \n", 1233 | " \n", 1234 | " \n", 1235 | " \n", 1236 | " \n", 1237 | " \n", 1238 | " \n", 1239 | " \n", 1240 | " \n", 1241 | " \n", 1242 | " \n", 1243 | " \n", 1244 | " \n", 1245 | " \n", 1246 | "
生徒番号学年握力上体起こし点数順位腕立て伏せ
01140.23415415
12134.21471012
23128.82711710
34239.0271454
45250.93217220
56236.5209924
67336.6311369
78349.23718111
89326.02810811
910347.43216317
\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 | " \n", 1347 | " \n", 1348 | " \n", 1349 | " \n", 1350 | " \n", 1351 | " \n", 1352 | " \n", 1353 | " \n", 1354 | " \n", 1355 | " \n", 1356 | " \n", 1357 | " \n", 1358 | " \n", 1359 | " \n", 1360 | " \n", 1361 | " \n", 1362 | " \n", 1363 | " \n", 1364 | " \n", 1365 | " \n", 1366 | " \n", 1367 | " \n", 1368 | " \n", 1369 | " \n", 1370 | " \n", 1371 | " \n", 1372 | " \n", 1373 | " \n", 1374 | " \n", 1375 | " \n", 1376 | " \n", 1377 | " \n", 1378 | " \n", 1379 | " \n", 1380 | " \n", 1381 | " \n", 1382 | " \n", 1383 | " \n", 1384 | " \n", 1385 | " \n", 1386 | " \n", 1387 | " \n", 1388 | " \n", 1389 | " \n", 1390 | " \n", 1391 | " \n", 1392 | " \n", 1393 | " \n", 1394 | " \n", 1395 | " \n", 1396 | " \n", 1397 | " \n", 1398 | " \n", 1399 | " \n", 1400 | " \n", 1401 | " \n", 1402 | " \n", 1403 | " \n", 1404 | " \n", 1405 | " \n", 1406 | " \n", 1407 | " \n", 1408 | " \n", 1409 | " \n", 1410 | " \n", 1411 | " \n", 1412 | " \n", 1413 | " \n", 1414 | " \n", 1415 | " \n", 1416 | " \n", 1417 | " \n", 1418 | " \n", 1419 | " \n", 1420 | " \n", 1421 | " \n", 1422 | " \n", 1423 | " \n", 1424 | " \n", 1425 | " \n", 1426 | " \n", 1427 | " \n", 1428 | " \n", 1429 | " \n", 1430 | " \n", 1431 | " \n", 1432 | " \n", 1433 | " \n", 1434 | " \n", 1435 | " \n", 1436 | " \n", 1437 | " \n", 1438 | " \n", 1439 | " \n", 1440 | " \n", 1441 | " \n", 1442 | " \n", 1443 | " \n", 1444 | " \n", 1445 | " \n", 1446 | " \n", 1447 | " \n", 1448 | " \n", 1449 | " \n", 1450 | " \n", 1451 | " \n", 1452 | " \n", 1453 | " \n", 1454 | " \n", 1455 | " \n", 1456 | "
生徒番号学年握力上体起こし点数順位腕立て伏せ
01.01.040.234.015.04.015.0
12.01.034.214.07.010.012.0
23.01.028.827.011.07.010.0
34.02.039.027.014.05.04.0
45.02.050.932.017.02.020.0
56.02.036.520.09.09.024.0
67.03.036.631.013.06.09.0
78.03.049.237.018.01.011.0
89.03.026.028.010.08.011.0
910.03.047.432.016.03.017.0
1011.03.042.430.015.011.012.0
\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 | --------------------------------------------------------------------------------