Skip to content

Instantly share code, notes, and snippets.

@hurutoriya
Last active February 2, 2016 05:24
Show Gist options
  • Save hurutoriya/a3830301ab76b812b959 to your computer and use it in GitHub Desktop.
Save hurutoriya/a3830301ab76b812b959 to your computer and use it in GitHub Desktop.
IPython Date Science Cook Book
my_project/
	data/
	code/
		common.py
	notebook/
		idea1.ipynb
		idea2.ipynb
	figures/
	README.md
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Recipe 1.2 はじめてのIPython探索データ分析"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Populating the interactive namespace from numpy and matplotlib\n"
]
},
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x111dca898>"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nwzHC+P8dWpleutPK9wAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x111e5b438>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"%pylab inline --no-import-all\n",
"import numpy as np\n",
"import pandas as pd\n",
"import matplotlib.pyplot as plt\n",
"\n",
"plt.style.use('ggplot')\n",
"# 自動車走行データ\n",
"url = \"http://donnees.ville.montreal.qc.ca/dataset/f170fecc-18db-44bc-b4fe-5b0b6d2c7297/resource/ec12447d-6b2a-45d0-b0e7-fd69c382e368/download/2013.csv\"\n",
"df = pd.read_csv(url, index_col = 'Date', parse_dates=True, dayfirst=True)\n",
"df[['Berri1','PierDup']].plot()"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\nSimVZf4/yMNh4IeIjjUAAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x112e1aa58>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"from IPython.html.widgets import interact\n",
"\n",
"@interact\n",
"def plot(n=(1,30)):\n",
" pd.rolling_mean(df['Berri1'],n).dropna().plot()\n",
" plt.ylim(0,8000)\n",
" plt.show()\n",
"# 便利だがBokehとの差別化はどうなのか?"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Recipe 1.3 高速配列計算のためのNumPy 多次元配列"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"10 loops, best of 3: 174 ms per loop\n"
]
}
],
"source": [
"import random\n",
"import numpy as np\n",
"\n",
"%precision 3\n",
"u'%.3f'\n",
"n = 1000000\n",
"x = [random.random() for _ in range(n)]\n",
"y = [random.random() for _ in range(n)]\n",
"%timeit [x[i] + y[i] for i in range(n)]"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"100 loops, best of 3: 4.08 ms per loop\n"
]
}
],
"source": [
"xa = np.array(x)\n",
"ya = np.array(y)\n",
"%timeit xa + ya"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"100 loops, best of 3: 6.04 ms per loop\n",
"1000 loops, best of 3: 708 µs per loop\n"
]
}
],
"source": [
"%timeit sum(x) #pure python\n",
"%timeit np.sum(xa) #numpy"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Recipe 2.5 再現性を高める10の秘訣\n",
"1. ディレクトリ構造、命名規則に一貫性を!\n",
">my_project\n",
" data/\n",
" code/\n",
" common.py\n",
" idea1.ipynb\n",
" idea2.ipynb\n",
" figures/\n",
" notes/\n",
" README.md\n",
"2. MarkDownやreSTを使ってマニュアル化しよう\n",
"3. 重要な部分はコメントや `docstring`を使おう(Recipe2.6 高品質なPythonコードを参照)\n",
"4. 全てのテキストファイルはGitで管理しよう(生成ファイルやバイナリファイルは除く)\n",
"5. IPython Notebook から作り始めて完成したら単一のPythonファイルへ\n",
"6. ソフトウェアスタックを明記する\n",
"7. 実行時間の長い計算はpickelなどで途中結果を保存しておこう\n",
"8. 巨大なデータセットに対してコードを構築する際には、まずは一部のデータを使い結果を検証しよう\n",
"9. 並列化が可能なら検討しよう(IPython.parallel, etc..)\n",
"10. Python関数やスクリプトを使って積極的に自動化を目指そう。(UNIXユーザーならUNIXコマンドの勉強を薦める)\n",
"\n",
"まとめ:コンピュータの前に座っている時間の最適化を目指そう! 日々の煩雑な手作業の自動化を!\n",
"\n",
"参考資料\n",
"- [An efficient workflow for reproducible science; SciPy 2013 Presentation](https://www.youtube.com/watch?v=Y-XFNg0QS14)\n",
"- [Ten Simple Rules for Reproducible Computational Research](http://journals.plos.org/ploscompbiol/article?id=10.1371/journal.pcbi.1003285)\n",
"\n",
"## Recipe 2.6 高品質なPythonコード\n",
"18項目にわたって解説。リーダブルコードなどで言われていることやPEPで示される点を改めて明示的に書かれている。\n",
"Recipe2.5を詳細に書かれた賞でもある。\n",
"\n",
"## Recipe 2.8 IPythonを使ったデバッグ\n",
"- %debug コマンドを使うことでデバッグモードへ\n",
"\n",
"## Recipe 3 IPython Notebookを使いこなす\n",
"- この本はNotebookで作成された。\n",
"\n",
"## Recipe 3.1 notebookとIPython blocksを用いたプログラミング教育\n",
"- 行列の乗算のアニメーション化"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Collecting ipythonblocks\n",
" Downloading ipythonblocks-1.7.0-py2.py3-none-any.whl\n",
"Collecting requests>=1.0 (from ipythonblocks)\n",
" Downloading requests-2.9.1-py2.py3-none-any.whl (501kB)\n",
"\u001b[K 100% |████████████████████████████████| 503kB 921kB/s \n",
"\u001b[?25hInstalling collected packages: requests, ipythonblocks\n",
"Successfully installed ipythonblocks-1.7.0 requests-2.9.1\n"
]
}
],
"source": [
"!pip install ipythonblocks"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<style type=\"text/css\">table.blockgrid {border: none;} .blockgrid tr {border: none;} .blockgrid td {padding: 0px;} #blocks0a43d59b-b8f3-445f-8882-63c85800aa80 td {border: 1px solid white;}</style><table id=\"blocks0a43d59b-b8f3-445f-8882-63c85800aa80\" class=\"blockgrid\"><tbody><tr><td title=\"Index: [0, 0]&#10;Color: (128, 0, 128)\" style=\"width: 20px; height: 20px;background-color: rgb(128, 0, 128);\"></td><td title=\"Index: [0, 1]&#10;Color: (128, 0, 128)\" style=\"width: 20px; height: 20px;background-color: rgb(128, 0, 128);\"></td><td title=\"Index: [0, 2]&#10;Color: (128, 0, 128)\" style=\"width: 20px; height: 20px;background-color: rgb(128, 0, 128);\"></td><td title=\"Index: [0, 3]&#10;Color: (128, 0, 128)\" style=\"width: 20px; height: 20px;background-color: rgb(128, 0, 128);\"></td><td title=\"Index: [0, 4]&#10;Color: (128, 0, 128)\" style=\"width: 20px; height: 20px;background-color: rgb(128, 0, 128);\"></td></tr><tr><td title=\"Index: [1, 0]&#10;Color: (128, 0, 128)\" style=\"width: 20px; height: 20px;background-color: rgb(128, 0, 128);\"></td><td title=\"Index: [1, 1]&#10;Color: (128, 0, 128)\" style=\"width: 20px; height: 20px;background-color: rgb(128, 0, 128);\"></td><td title=\"Index: [1, 2]&#10;Color: (128, 0, 128)\" style=\"width: 20px; height: 20px;background-color: rgb(128, 0, 128);\"></td><td title=\"Index: [1, 3]&#10;Color: (128, 0, 128)\" style=\"width: 20px; height: 20px;background-color: rgb(128, 0, 128);\"></td><td title=\"Index: [1, 4]&#10;Color: (128, 0, 128)\" style=\"width: 20px; height: 20px;background-color: rgb(128, 0, 128);\"></td></tr><tr><td title=\"Index: [2, 0]&#10;Color: (128, 0, 128)\" style=\"width: 20px; height: 20px;background-color: rgb(128, 0, 128);\"></td><td title=\"Index: [2, 1]&#10;Color: (128, 0, 128)\" style=\"width: 20px; height: 20px;background-color: rgb(128, 0, 128);\"></td><td title=\"Index: [2, 2]&#10;Color: (128, 0, 128)\" style=\"width: 20px; height: 20px;background-color: rgb(128, 0, 128);\"></td><td title=\"Index: [2, 3]&#10;Color: (128, 0, 128)\" style=\"width: 20px; height: 20px;background-color: rgb(128, 0, 128);\"></td><td title=\"Index: [2, 4]&#10;Color: (128, 0, 128)\" style=\"width: 20px; height: 20px;background-color: rgb(128, 0, 128);\"></td></tr><tr><td title=\"Index: [3, 0]&#10;Color: (128, 0, 128)\" style=\"width: 20px; height: 20px;background-color: rgb(128, 0, 128);\"></td><td title=\"Index: [3, 1]&#10;Color: (128, 0, 128)\" style=\"width: 20px; height: 20px;background-color: rgb(128, 0, 128);\"></td><td title=\"Index: [3, 2]&#10;Color: (128, 0, 128)\" style=\"width: 20px; height: 20px;background-color: rgb(128, 0, 128);\"></td><td title=\"Index: [3, 3]&#10;Color: (128, 0, 128)\" style=\"width: 20px; height: 20px;background-color: rgb(128, 0, 128);\"></td><td title=\"Index: [3, 4]&#10;Color: (128, 0, 128)\" style=\"width: 20px; height: 20px;background-color: rgb(128, 0, 128);\"></td></tr><tr><td title=\"Index: [4, 0]&#10;Color: (128, 0, 128)\" style=\"width: 20px; height: 20px;background-color: rgb(128, 0, 128);\"></td><td title=\"Index: [4, 1]&#10;Color: (128, 0, 128)\" style=\"width: 20px; height: 20px;background-color: rgb(128, 0, 128);\"></td><td title=\"Index: [4, 2]&#10;Color: (128, 0, 128)\" style=\"width: 20px; height: 20px;background-color: rgb(128, 0, 128);\"></td><td title=\"Index: [4, 3]&#10;Color: (128, 0, 128)\" style=\"width: 20px; height: 20px;background-color: rgb(128, 0, 128);\"></td><td title=\"Index: [4, 4]&#10;Color: (128, 0, 128)\" style=\"width: 20px; height: 20px;background-color: rgb(128, 0, 128);\"></td></tr></tbody></table>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import time\n",
"from IPython.display import clear_output\n",
"from ipythonblocks import BlockGrid, colors\n",
"\n",
"grid = BlockGrid(width=5, height=5, fill=colors['Purple'])\n",
"grid.show()"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<style type=\"text/css\">table.blockgrid {border: none;} .blockgrid tr {border: none;} .blockgrid td {padding: 0px;} #blocks0e41c415-1622-4181-bb6a-77c435223b0f td {border: 1px solid white;}</style><table id=\"blocks0e41c415-1622-4181-bb6a-77c435223b0f\" class=\"blockgrid\"><tbody><tr><td title=\"Index: [0, 0]&#10;Color: (0, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 0);\"></td><td title=\"Index: [0, 1]&#10;Color: (128, 0, 128)\" style=\"width: 20px; height: 20px;background-color: rgb(128, 0, 128);\"></td><td title=\"Index: [0, 2]&#10;Color: (128, 0, 128)\" style=\"width: 20px; height: 20px;background-color: rgb(128, 0, 128);\"></td><td title=\"Index: [0, 3]&#10;Color: (128, 0, 128)\" style=\"width: 20px; height: 20px;background-color: rgb(128, 0, 128);\"></td><td title=\"Index: [0, 4]&#10;Color: (0, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 0);\"></td></tr><tr><td title=\"Index: [1, 0]&#10;Color: (128, 0, 128)\" style=\"width: 20px; height: 20px;background-color: rgb(128, 0, 128);\"></td><td title=\"Index: [1, 1]&#10;Color: (128, 0, 128)\" style=\"width: 20px; height: 20px;background-color: rgb(128, 0, 128);\"></td><td title=\"Index: [1, 2]&#10;Color: (128, 0, 128)\" style=\"width: 20px; height: 20px;background-color: rgb(128, 0, 128);\"></td><td title=\"Index: [1, 3]&#10;Color: (128, 0, 128)\" style=\"width: 20px; height: 20px;background-color: rgb(128, 0, 128);\"></td><td title=\"Index: [1, 4]&#10;Color: (0, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 0);\"></td></tr><tr><td title=\"Index: [2, 0]&#10;Color: (128, 0, 128)\" style=\"width: 20px; height: 20px;background-color: rgb(128, 0, 128);\"></td><td title=\"Index: [2, 1]&#10;Color: (128, 0, 128)\" style=\"width: 20px; height: 20px;background-color: rgb(128, 0, 128);\"></td><td title=\"Index: [2, 2]&#10;Color: (128, 0, 128)\" style=\"width: 20px; height: 20px;background-color: rgb(128, 0, 128);\"></td><td title=\"Index: [2, 3]&#10;Color: (128, 0, 128)\" style=\"width: 20px; height: 20px;background-color: rgb(128, 0, 128);\"></td><td title=\"Index: [2, 4]&#10;Color: (0, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 0);\"></td></tr><tr><td title=\"Index: [3, 0]&#10;Color: (128, 0, 128)\" style=\"width: 20px; height: 20px;background-color: rgb(128, 0, 128);\"></td><td title=\"Index: [3, 1]&#10;Color: (128, 0, 128)\" style=\"width: 20px; height: 20px;background-color: rgb(128, 0, 128);\"></td><td title=\"Index: [3, 2]&#10;Color: (128, 0, 128)\" style=\"width: 20px; height: 20px;background-color: rgb(128, 0, 128);\"></td><td title=\"Index: [3, 3]&#10;Color: (128, 0, 128)\" style=\"width: 20px; height: 20px;background-color: rgb(128, 0, 128);\"></td><td title=\"Index: [3, 4]&#10;Color: (0, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 0);\"></td></tr><tr><td title=\"Index: [4, 0]&#10;Color: (0, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 0);\"></td><td title=\"Index: [4, 1]&#10;Color: (128, 0, 128)\" style=\"width: 20px; height: 20px;background-color: rgb(128, 0, 128);\"></td><td title=\"Index: [4, 2]&#10;Color: (128, 0, 128)\" style=\"width: 20px; height: 20px;background-color: rgb(128, 0, 128);\"></td><td title=\"Index: [4, 3]&#10;Color: (128, 0, 128)\" style=\"width: 20px; height: 20px;background-color: rgb(128, 0, 128);\"></td><td title=\"Index: [4, 4]&#10;Color: (0, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 0);\"></td></tr></tbody></table>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"grid[0,0] = colors['Lime']\n",
"grid[-1,0] = colors['Lime']\n",
"grid[:,-1] = colors['Lime']\n",
"grid.show()"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<style type=\"text/css\">table.blockgrid {border: none;} .blockgrid tr {border: none;} .blockgrid td {padding: 0px;} #blockseaf47b05-961a-4391-8f35-bb7586f5e16a td {border: 1px solid white;}</style><table id=\"blockseaf47b05-961a-4391-8f35-bb7586f5e16a\" class=\"blockgrid\"><tbody><tr><td title=\"Index: [0, 0]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [0, 1]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [0, 2]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [0, 3]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [0, 4]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [0, 5]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [0, 6]&#10;Color: (0, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 0);\"></td><td title=\"Index: [0, 7]&#10;Color: (0, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 0);\"></td><td title=\"Index: [0, 8]&#10;Color: (0, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 0);\"></td><td title=\"Index: [0, 9]&#10;Color: (0, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 0);\"></td><td title=\"Index: [0, 10]&#10;Color: (0, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 0);\"></td></tr><tr><td title=\"Index: [1, 0]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [1, 1]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [1, 2]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [1, 3]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [1, 4]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [1, 5]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [1, 6]&#10;Color: (0, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 0);\"></td><td title=\"Index: [1, 7]&#10;Color: (0, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 0);\"></td><td title=\"Index: [1, 8]&#10;Color: (0, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 0);\"></td><td title=\"Index: [1, 9]&#10;Color: (0, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 0);\"></td><td title=\"Index: [1, 10]&#10;Color: (0, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 0);\"></td></tr><tr><td title=\"Index: [2, 0]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [2, 1]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [2, 2]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [2, 3]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [2, 4]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [2, 5]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [2, 6]&#10;Color: (0, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 0);\"></td><td title=\"Index: [2, 7]&#10;Color: (0, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 0);\"></td><td title=\"Index: [2, 8]&#10;Color: (0, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 0);\"></td><td title=\"Index: [2, 9]&#10;Color: (0, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 0);\"></td><td title=\"Index: [2, 10]&#10;Color: (0, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 0);\"></td></tr><tr><td title=\"Index: [3, 0]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [3, 1]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [3, 2]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [3, 3]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [3, 4]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [3, 5]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [3, 6]&#10;Color: (0, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 0);\"></td><td title=\"Index: [3, 7]&#10;Color: (0, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 0);\"></td><td title=\"Index: [3, 8]&#10;Color: (0, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 0);\"></td><td title=\"Index: [3, 9]&#10;Color: (0, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 0);\"></td><td title=\"Index: [3, 10]&#10;Color: (0, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 0);\"></td></tr><tr><td title=\"Index: [4, 0]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [4, 1]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [4, 2]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [4, 3]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [4, 4]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [4, 5]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [4, 6]&#10;Color: (0, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 0);\"></td><td title=\"Index: [4, 7]&#10;Color: (0, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 0);\"></td><td title=\"Index: [4, 8]&#10;Color: (0, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 0);\"></td><td title=\"Index: [4, 9]&#10;Color: (0, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 0);\"></td><td title=\"Index: [4, 10]&#10;Color: (0, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 0);\"></td></tr><tr><td title=\"Index: [5, 0]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [5, 1]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [5, 2]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [5, 3]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [5, 4]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [5, 5]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [5, 6]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [5, 7]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [5, 8]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [5, 9]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [5, 10]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td></tr><tr><td title=\"Index: [6, 0]&#10;Color: (0, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 255);\"></td><td title=\"Index: [6, 1]&#10;Color: (0, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 255);\"></td><td title=\"Index: [6, 2]&#10;Color: (0, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 255);\"></td><td title=\"Index: [6, 3]&#10;Color: (0, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 255);\"></td><td title=\"Index: [6, 4]&#10;Color: (0, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 255);\"></td><td title=\"Index: [6, 5]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [6, 6]&#10;Color: (255, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 0);\"></td><td title=\"Index: [6, 7]&#10;Color: (255, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 0);\"></td><td title=\"Index: [6, 8]&#10;Color: (255, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 0);\"></td><td title=\"Index: [6, 9]&#10;Color: (255, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 0);\"></td><td title=\"Index: [6, 10]&#10;Color: (255, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 0);\"></td></tr><tr><td title=\"Index: [7, 0]&#10;Color: (0, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 255);\"></td><td title=\"Index: [7, 1]&#10;Color: (0, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 255);\"></td><td title=\"Index: [7, 2]&#10;Color: (0, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 255);\"></td><td title=\"Index: [7, 3]&#10;Color: (0, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 255);\"></td><td title=\"Index: [7, 4]&#10;Color: (0, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 255);\"></td><td title=\"Index: [7, 5]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [7, 6]&#10;Color: (255, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 0);\"></td><td title=\"Index: [7, 7]&#10;Color: (255, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 0);\"></td><td title=\"Index: [7, 8]&#10;Color: (255, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 0);\"></td><td title=\"Index: [7, 9]&#10;Color: (255, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 0);\"></td><td title=\"Index: [7, 10]&#10;Color: (255, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 0);\"></td></tr><tr><td title=\"Index: [8, 0]&#10;Color: (0, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 255);\"></td><td title=\"Index: [8, 1]&#10;Color: (0, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 255);\"></td><td title=\"Index: [8, 2]&#10;Color: (0, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 255);\"></td><td title=\"Index: [8, 3]&#10;Color: (0, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 255);\"></td><td title=\"Index: [8, 4]&#10;Color: (0, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 255);\"></td><td title=\"Index: [8, 5]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [8, 6]&#10;Color: (255, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 0);\"></td><td title=\"Index: [8, 7]&#10;Color: (255, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 0);\"></td><td title=\"Index: [8, 8]&#10;Color: (255, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 0);\"></td><td title=\"Index: [8, 9]&#10;Color: (255, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 0);\"></td><td title=\"Index: [8, 10]&#10;Color: (255, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 0);\"></td></tr><tr><td title=\"Index: [9, 0]&#10;Color: (0, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 255);\"></td><td title=\"Index: [9, 1]&#10;Color: (0, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 255);\"></td><td title=\"Index: [9, 2]&#10;Color: (0, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 255);\"></td><td title=\"Index: [9, 3]&#10;Color: (0, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 255);\"></td><td title=\"Index: [9, 4]&#10;Color: (0, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 255);\"></td><td title=\"Index: [9, 5]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [9, 6]&#10;Color: (255, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 0);\"></td><td title=\"Index: [9, 7]&#10;Color: (255, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 0);\"></td><td title=\"Index: [9, 8]&#10;Color: (255, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 0);\"></td><td title=\"Index: [9, 9]&#10;Color: (255, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 0);\"></td><td title=\"Index: [9, 10]&#10;Color: (255, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 0);\"></td></tr><tr><td title=\"Index: [10, 0]&#10;Color: (0, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 255);\"></td><td title=\"Index: [10, 1]&#10;Color: (0, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 255);\"></td><td title=\"Index: [10, 2]&#10;Color: (0, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 255);\"></td><td title=\"Index: [10, 3]&#10;Color: (0, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 255);\"></td><td title=\"Index: [10, 4]&#10;Color: (0, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 255);\"></td><td title=\"Index: [10, 5]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [10, 6]&#10;Color: (255, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 0);\"></td><td title=\"Index: [10, 7]&#10;Color: (255, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 0);\"></td><td title=\"Index: [10, 8]&#10;Color: (255, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 0);\"></td><td title=\"Index: [10, 9]&#10;Color: (255, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 0);\"></td><td title=\"Index: [10, 10]&#10;Color: (255, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 0);\"></td></tr></tbody></table>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"n = 5\n",
"grid = BlockGrid(width=2*n+1,\n",
" height=2*n+1,\n",
" fill=colors['White'])\n",
"A = grid[n+1:,:n]\n",
"B = grid[:n,n+1:]\n",
"C = grid[n+1:,n+1:]\n",
"A[:,:] = colors['Cyan']\n",
"B[:,:] = colors['Lime']\n",
"C[:,:] = colors['Yellow']\n",
"grid.show()"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<style type=\"text/css\">table.blockgrid {border: none;} .blockgrid tr {border: none;} .blockgrid td {padding: 0px;} #blocksf1b71c8d-788d-4842-9057-7a1e3e6c508f td {border: 1px solid white;}</style><table id=\"blocksf1b71c8d-788d-4842-9057-7a1e3e6c508f\" class=\"blockgrid\"><tbody><tr><td title=\"Index: [0, 0]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [0, 1]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [0, 2]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [0, 3]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [0, 4]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [0, 5]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [0, 6]&#10;Color: (0, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 0);\"></td><td title=\"Index: [0, 7]&#10;Color: (0, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 0);\"></td><td title=\"Index: [0, 8]&#10;Color: (0, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 0);\"></td><td title=\"Index: [0, 9]&#10;Color: (0, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 0);\"></td><td title=\"Index: [0, 10]&#10;Color: (255, 0, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 0, 0);\"></td></tr><tr><td title=\"Index: [1, 0]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [1, 1]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [1, 2]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [1, 3]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [1, 4]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [1, 5]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [1, 6]&#10;Color: (0, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 0);\"></td><td title=\"Index: [1, 7]&#10;Color: (0, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 0);\"></td><td title=\"Index: [1, 8]&#10;Color: (0, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 0);\"></td><td title=\"Index: [1, 9]&#10;Color: (0, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 0);\"></td><td title=\"Index: [1, 10]&#10;Color: (255, 0, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 0, 0);\"></td></tr><tr><td title=\"Index: [2, 0]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [2, 1]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [2, 2]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [2, 3]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [2, 4]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [2, 5]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [2, 6]&#10;Color: (0, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 0);\"></td><td title=\"Index: [2, 7]&#10;Color: (0, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 0);\"></td><td title=\"Index: [2, 8]&#10;Color: (0, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 0);\"></td><td title=\"Index: [2, 9]&#10;Color: (0, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 0);\"></td><td title=\"Index: [2, 10]&#10;Color: (255, 0, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 0, 0);\"></td></tr><tr><td title=\"Index: [3, 0]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [3, 1]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [3, 2]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [3, 3]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [3, 4]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [3, 5]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [3, 6]&#10;Color: (0, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 0);\"></td><td title=\"Index: [3, 7]&#10;Color: (0, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 0);\"></td><td title=\"Index: [3, 8]&#10;Color: (0, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 0);\"></td><td title=\"Index: [3, 9]&#10;Color: (0, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 0);\"></td><td title=\"Index: [3, 10]&#10;Color: (255, 0, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 0, 0);\"></td></tr><tr><td title=\"Index: [4, 0]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [4, 1]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [4, 2]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [4, 3]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [4, 4]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [4, 5]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [4, 6]&#10;Color: (0, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 0);\"></td><td title=\"Index: [4, 7]&#10;Color: (0, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 0);\"></td><td title=\"Index: [4, 8]&#10;Color: (0, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 0);\"></td><td title=\"Index: [4, 9]&#10;Color: (0, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 0);\"></td><td title=\"Index: [4, 10]&#10;Color: (255, 0, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 0, 0);\"></td></tr><tr><td title=\"Index: [5, 0]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [5, 1]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [5, 2]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [5, 3]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [5, 4]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [5, 5]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [5, 6]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [5, 7]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [5, 8]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [5, 9]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [5, 10]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td></tr><tr><td title=\"Index: [6, 0]&#10;Color: (0, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 255);\"></td><td title=\"Index: [6, 1]&#10;Color: (0, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 255);\"></td><td title=\"Index: [6, 2]&#10;Color: (0, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 255);\"></td><td title=\"Index: [6, 3]&#10;Color: (0, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 255);\"></td><td title=\"Index: [6, 4]&#10;Color: (0, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 255);\"></td><td title=\"Index: [6, 5]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [6, 6]&#10;Color: (255, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 0);\"></td><td title=\"Index: [6, 7]&#10;Color: (255, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 0);\"></td><td title=\"Index: [6, 8]&#10;Color: (255, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 0);\"></td><td title=\"Index: [6, 9]&#10;Color: (255, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 0);\"></td><td title=\"Index: [6, 10]&#10;Color: (255, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 0);\"></td></tr><tr><td title=\"Index: [7, 0]&#10;Color: (0, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 255);\"></td><td title=\"Index: [7, 1]&#10;Color: (0, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 255);\"></td><td title=\"Index: [7, 2]&#10;Color: (0, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 255);\"></td><td title=\"Index: [7, 3]&#10;Color: (0, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 255);\"></td><td title=\"Index: [7, 4]&#10;Color: (0, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 255);\"></td><td title=\"Index: [7, 5]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [7, 6]&#10;Color: (255, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 0);\"></td><td title=\"Index: [7, 7]&#10;Color: (255, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 0);\"></td><td title=\"Index: [7, 8]&#10;Color: (255, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 0);\"></td><td title=\"Index: [7, 9]&#10;Color: (255, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 0);\"></td><td title=\"Index: [7, 10]&#10;Color: (255, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 0);\"></td></tr><tr><td title=\"Index: [8, 0]&#10;Color: (0, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 255);\"></td><td title=\"Index: [8, 1]&#10;Color: (0, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 255);\"></td><td title=\"Index: [8, 2]&#10;Color: (0, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 255);\"></td><td title=\"Index: [8, 3]&#10;Color: (0, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 255);\"></td><td title=\"Index: [8, 4]&#10;Color: (0, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 255);\"></td><td title=\"Index: [8, 5]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [8, 6]&#10;Color: (255, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 0);\"></td><td title=\"Index: [8, 7]&#10;Color: (255, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 0);\"></td><td title=\"Index: [8, 8]&#10;Color: (255, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 0);\"></td><td title=\"Index: [8, 9]&#10;Color: (255, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 0);\"></td><td title=\"Index: [8, 10]&#10;Color: (255, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 0);\"></td></tr><tr><td title=\"Index: [9, 0]&#10;Color: (0, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 255);\"></td><td title=\"Index: [9, 1]&#10;Color: (0, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 255);\"></td><td title=\"Index: [9, 2]&#10;Color: (0, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 255);\"></td><td title=\"Index: [9, 3]&#10;Color: (0, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 255);\"></td><td title=\"Index: [9, 4]&#10;Color: (0, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(0, 255, 255);\"></td><td title=\"Index: [9, 5]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [9, 6]&#10;Color: (255, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 0);\"></td><td title=\"Index: [9, 7]&#10;Color: (255, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 0);\"></td><td title=\"Index: [9, 8]&#10;Color: (255, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 0);\"></td><td title=\"Index: [9, 9]&#10;Color: (255, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 0);\"></td><td title=\"Index: [9, 10]&#10;Color: (255, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 0);\"></td></tr><tr><td title=\"Index: [10, 0]&#10;Color: (255, 0, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 0, 0);\"></td><td title=\"Index: [10, 1]&#10;Color: (255, 0, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 0, 0);\"></td><td title=\"Index: [10, 2]&#10;Color: (255, 0, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 0, 0);\"></td><td title=\"Index: [10, 3]&#10;Color: (255, 0, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 0, 0);\"></td><td title=\"Index: [10, 4]&#10;Color: (255, 0, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 0, 0);\"></td><td title=\"Index: [10, 5]&#10;Color: (255, 255, 255)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 255);\"></td><td title=\"Index: [10, 6]&#10;Color: (255, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 0);\"></td><td title=\"Index: [10, 7]&#10;Color: (255, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 0);\"></td><td title=\"Index: [10, 8]&#10;Color: (255, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 0);\"></td><td title=\"Index: [10, 9]&#10;Color: (255, 255, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 255, 0);\"></td><td title=\"Index: [10, 10]&#10;Color: (255, 0, 0)\" style=\"width: 20px; height: 20px;background-color: rgb(255, 0, 0);\"></td></tr></tbody></table>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"for i in range(n):\n",
" for j in range(n):\n",
" # We reset the matrix colors.\n",
" A[:,:] = colors['Cyan']\n",
" B[:,:] = colors['Lime']\n",
" C[:,:] = colors['Yellow']\n",
" A[i,:] = colors['Red']\n",
" B[:,j] = colors['Red']\n",
" C[i,j] = colors['Red']\n",
" clear_output()\n",
" grid.show()\n",
" time.sleep(0.25)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Recipe 3.7 notebookからWeb Camera画像をリアルタイム処理\n",
"- 面白かった。 HTML5とPytonを組み合わせて簡単なアプリが作れる。\n",
"- https://github.com/ipython/ipywidgets\n",
"\n",
"## After Recipe 4\n",
"Recipe4以降は様々な分野に対するレクチャーが行われてる。\n",
"気になったときに適宜見ていこうかなと思います。\n",
"\n",
"### 良かった点\n",
"- 「データサイエンスクックブック」という題名の通り、単なるプログラミングではなく科学よりの知見が書かれた本。\n",
" - 研究でPythonを使いたい人いう人向けにこの本はオススメです。\n",
"- 8章「機械学習」と14章「グラフ、幾何学、地理情報システム」が面白そう。\n",
"- 各種サンプルコードがGithubや nbviewerで公開されていてOSSの息吹を感じ取れるのが良い。\n",
"- Packageは既知の物が多かったけど、Recipe 2.5-2.6 は個人的に良い事書いてんなと感動。\n",
"- packageは便利だけど、標準モジュールを如何に使いこなすかってのも大事。\n",
" - Python自体を真面目に勉強したことないので、時間あるときにガチッと勉強しよう。"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.5.1"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment