Skip to content

Instantly share code, notes, and snippets.

@shotahorii
Created April 26, 2019 21:57
Show Gist options
  • Save shotahorii/c3bfb793af9ef8d9acf787bdd93865bd to your computer and use it in GitHub Desktop.
Save shotahorii/c3bfb793af9ef8d9acf787bdd93865bd to your computer and use it in GitHub Desktop.
Count Data Preprocessing
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Preprocessing on Count data\n",
"- 「機械学習のための特徴量エンジニアリング」第2章\n",
"\n",
"カウントデータにおいてよく使われる前処理をまとめる。"
]
},
{
"cell_type": "code",
"execution_count": 157,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import pandas as pd\n",
"import numpy as np\n",
"from matplotlib import pyplot as plt\n",
"%matplotlib inline"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**二値化(Binarise)** \n",
"カウントの絶対値ではなく、「0か1以上か」や「ある閾値より大きいか小さいか」といったような違いに興味がある場合。"
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# 例えばあるユーザの、サイトの閲覧履歴\n",
"cols = ['site_name','visit_count']\n",
"data = [['abc.com',4],['xxx.com',2],['test.org',0],['apple.net',0],['yyy.com',1],\n",
" ['zzz.org',2],['hello.io',13],['world.ie',0],['guitar.net',10],['yokohama.com',5]]\n",
"df = pd.DataFrame(data,columns=cols)"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def binarize(c,threshold):\n",
" return 0 if c < threshold else 1"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"df['moreThan0'] = df['visit_count'].apply(lambda x: binarize(x,1))\n",
"df['moreThan9'] = df['visit_count'].apply(lambda x: binarize(x,10))"
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>site_name</th>\n",
" <th>visit_count</th>\n",
" <th>moreThan0</th>\n",
" <th>moreThan9</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>abc.com</td>\n",
" <td>4</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>xxx.com</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>test.org</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>apple.net</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>yyy.com</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>zzz.org</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>hello.io</td>\n",
" <td>13</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>world.ie</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>guitar.net</td>\n",
" <td>10</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>yokohama.com</td>\n",
" <td>5</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" site_name visit_count moreThan0 moreThan9\n",
"0 abc.com 4 1 0\n",
"1 xxx.com 2 1 0\n",
"2 test.org 0 0 0\n",
"3 apple.net 0 0 0\n",
"4 yyy.com 1 1 0\n",
"5 zzz.org 2 1 0\n",
"6 hello.io 13 1 1\n",
"7 world.ie 0 0 0\n",
"8 guitar.net 10 1 1\n",
"9 yokohama.com 5 1 0"
]
},
"execution_count": 39,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**ビン分割(Binning)** \n",
"カウントの絶対数よりも、「0~9,10~19,...」といったような階級幅ごとの分布に興味がある場合。\n",
" \n",
"##### 固定幅のビン分割"
]
},
{
"cell_type": "code",
"execution_count": 76,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# 例えばあるSNSにおける30ユーザのフォロワー数データ(0フォロワー ~ 最大99フォロワーとする)\n",
"df = pd.DataFrame(np.random.randint(0,100,30),columns=['follower_count'])"
]
},
{
"cell_type": "code",
"execution_count": 77,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"def bin_width(l,width):\n",
" # l: list of original values\n",
" # width: width of each bin\n",
" return np.floor_divide(l,width)"
]
},
{
"cell_type": "code",
"execution_count": 78,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"df['bin_10'] = bin_width(df['follower_count'],10)\n",
"df['bin_20'] = bin_width(df['follower_count'],20)"
]
},
{
"cell_type": "code",
"execution_count": 79,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>follower_count</th>\n",
" <th>bin_10</th>\n",
" <th>bin_20</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>17</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>26</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>89</td>\n",
" <td>8</td>\n",
" <td>4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>18</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>45</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" follower_count bin_10 bin_20\n",
"0 17 1 0\n",
"1 26 2 1\n",
"2 89 8 4\n",
"3 18 1 0\n",
"4 45 4 2"
]
},
"execution_count": 79,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.head(5)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### 指定幅のビン分割"
]
},
{
"cell_type": "code",
"execution_count": 98,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# 例えばあるSNSにおける30ユーザのフォロワー数データ(0フォロワー ~ 最大999フォロワーとする)\n",
"df = pd.DataFrame(np.random.randint(0,1000,30),columns=['follower_count'])"
]
},
{
"cell_type": "code",
"execution_count": 99,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def classify(x,bin_starts):\n",
" # bin_starts: list of start value of each bin (must be ascending sorted list)\n",
" for i in range(len(bin_starts)):\n",
" if x < bin_starts[i]:\n",
" return i\n",
" return len(bin_starts)\n",
"\n",
"def bin_custom(l,bin_starts):\n",
" return [classify(x,bin_starts) for x in l]"
]
},
{
"cell_type": "code",
"execution_count": 100,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# 指定ビン: 0~9, 10~49, 50~99, 100~499, 500~\n",
"bins = [10,50,100,500]"
]
},
{
"cell_type": "code",
"execution_count": 101,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"df['bin'] = bin_custom(df['follower_count'],bins)"
]
},
{
"cell_type": "code",
"execution_count": 103,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>follower_count</th>\n",
" <th>bin</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>589</td>\n",
" <td>4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>811</td>\n",
" <td>4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>419</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>10</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>169</td>\n",
" <td>3</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" follower_count bin\n",
"0 589 4\n",
"1 811 4\n",
"2 419 3\n",
"3 10 1\n",
"4 169 3"
]
},
"execution_count": 103,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.head(5)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### 固定対数幅のビン分割"
]
},
{
"cell_type": "code",
"execution_count": 104,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# 例えばあるSNSにおける30ユーザのフォロワー数データ(0フォロワー ~ 最大999999フォロワーとする)\n",
"df = pd.DataFrame([2,30,835225,450,982,321,6,3,1,45,67,90,81,956,674,8892,\n",
" 6723,34534,3423462,9853,43,4346,343,6,5654,345,43,44,634,\n",
" 645,4,12,5,34,43,68,235,2345,65,67566,765774,54737],columns=['follower_count'])"
]
},
{
"cell_type": "code",
"execution_count": 105,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def bin_width_log10(l):\n",
" # l: list of original values\n",
" return np.floor(np.log10(l))"
]
},
{
"cell_type": "code",
"execution_count": 106,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"df['bin'] = bin_width_log10(df['follower_count'])"
]
},
{
"cell_type": "code",
"execution_count": 108,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>follower_count</th>\n",
" <th>bin</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>30</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>835225</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>450</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>982</td>\n",
" <td>2</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" follower_count bin\n",
"0 2 0\n",
"1 30 1\n",
"2 835225 5\n",
"3 450 2\n",
"4 982 2"
]
},
"execution_count": 108,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.head(5)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### 分位数によるビン分割"
]
},
{
"cell_type": "code",
"execution_count": 110,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# 例えばあるSNSにおける30ユーザのフォロワー数データ(0フォロワー ~ 最大999999フォロワーとする)\n",
"df = pd.DataFrame([2,30,835225,450,982,321,6,3,1,45,67,90,81,956,674,8892,\n",
" 6723,34534,3423462,9853,43,4346,343,6,5654,345,43,44,634,\n",
" 645,4,12,5,34,43,68,235,2345,65,67566,765774,54737],columns=['follower_count'])"
]
},
{
"cell_type": "code",
"execution_count": 112,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"0.25 43.00\n",
"0.50 278.00\n",
"0.75 3845.75\n",
"Name: follower_count, dtype: float64"
]
},
"execution_count": 112,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# 四分位を計算\n",
"df.follower_count.quantile([0.25,0.5,0.75])"
]
},
{
"cell_type": "code",
"execution_count": 116,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"df['bin'] = pd.qcut(df.follower_count,4,labels=False)"
]
},
{
"cell_type": "code",
"execution_count": 118,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>follower_count</th>\n",
" <th>bin</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>30</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>835225</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>450</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>982</td>\n",
" <td>2</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" follower_count bin\n",
"0 2 0\n",
"1 30 0\n",
"2 835225 3\n",
"3 450 2\n",
"4 982 2"
]
},
"execution_count": 118,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.head(5)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**ヒストグラムの対数変換** \n",
"カウントデータでヒストグラムを作る時、非常に裾野の長い分布になるケースはよくある。例えばある動画サイトにおける、動画ごとの1時間あたり再生回数を考えてみる。 \n",
"ある特定の人気動画が数千回再生される一方で、ほとんどの動画はせいぜい数回程度、多くても100回再生未満であるようなケース。こんな時、ヒストグラムは有効にデータを視覚化しない。"
]
},
{
"cell_type": "code",
"execution_count": 201,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# 動画ごとの一時間あたり再生数\n",
"x = np.arange(0,5000)\n",
"y = np.floor(100000/(x+1)*np.random.rand(1))\n",
"data = []\n",
"for i in range(len(x)):\n",
" data = data + [x[i]]*int(y[i])"
]
},
{
"cell_type": "code",
"execution_count": 208,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\nmumGiEt22WbdtPzBLNxQkSR3Jzmvqk6YboY4bxoDACD7cGauqt6b5LeSPFxVD2Thcuqnk/xhklur\n6iNJfpSFO1jT3Rur6tYkG5M8n+Sy7t5xCfbyJDckOTbJnd191zR+fZKbq2pTkieTrJ329XRVfS7J\n96bvu366EQIAgCT1SmeNa+H9e7u+jmtyxRXP5AtfuGZZjgkAYDFVle7e7/sD9sRfgAAAGJiYAwAY\nmJgDABiYmAMAGJiYAwAYmJgDABiYmAMAGJiYAwAYmJgDABiYmAMAGJiYAwAYmJgDABiYmAMAGJiY\nAwAYmJgDABiYmAMAGJiYAwAYmJgDABiYmAMAGJiYAwAYmJgDABiYmAMAGJiYAwAYmJgDABiYmAMA\nGJiYAwAYmJgDABiYmAMAGJiYAwAYmJgDABiYmAMAGJiYAwAYmJgDABiYmAMAGJiYAwAYmJgDABiY\nmAMAGJiYAwAYmJgDABiYmAMAGJiYAwAYmJgDABiYmAMAGJiYAwAYmJgDABiYmAMAGJiYAwAYmJgD\nABiYmAMAGJiYAwAYmJgDABiYmAMAGJiYAwAYmJgDABiYmAMAGJiYAwAYmJgDABiYmAMAGJiYAwAY\nmJgDABiYmAMAGJiYAwAYmJgDABiYmAMAGJiYAwAYmJgDABiYmAMAGJiYAwAYmJgDABjYXmOuqq6v\nqm1V9dDM2FVVtbmqfjA9Lpz52pVVtamqHqmq82fGz62qh6rqsaq6dmb8mKq6Zdrm3qo6feZr66b1\nH62qS5bmJQMAHDn25czcnyS5YJHxP+7uc6fHXUlSVWcn+VCSs5O8P8l1VVXT+l9Kcml3n5XkrKra\nsc9LkzzV3W9Jcm2Sz0/7OjHJZ5K8O8l7klxVVSccyIsEADhS7TXmuvvbSZ5e5Eu1yNhFSW7p7he6\n+/Ekm5KsqapTk7yxu++f1rspycUz29w4Ld+W5H3T8gVJNnT39u7+RZINSV4+AwgAwMG9Z+5jVfVg\nVX1l5ozZaUmemFlnyzR2WpLNM+Obp7GdtunuF5Nsr6qTXmVfAABMVh3gdtcl+Wx3d1X9fpI/SvLR\nJTqmxc747YOrZ5bnluAwAAAO3vz8fObn5w/Z/g8o5rr75zNPv5zkz6flLUneNPO11dPYnsZnt/lJ\nVR2d5PjufqqqtmTnKlud5Jt7Pqqrd3l+795fCADAITY3N5e5ubmXn69fv35J97+vl1krM2fMpvfA\n7fAbSf5yWr4jydrpDtUzkpyZ5L7u3pqFy6drphsiLkly+8w266blDya5Z1q+O8l5VXXCdDPEedMY\nAACTvZ6Zq6qvZeEM2a9U1Y+TXJXkH1fVOUleSvJ4kt9Nku7eWFW3JtmY5Pkkl3V3T7u6PMkNSY5N\ncueOO2CTXJ/k5qralOTJJGunfT1dVZ9L8r0knWT9dCMEAACTeqW1xlVVvdB7s67JFVc8ky984Zpl\nOSYAgMVUVbr7AO8R2J2/AAEAMDAxBwAwMDEHADAwMQcAMDAxBwAwMDEHADAwMQcAMDAxBwAwMDEH\nADAwMQcAMDAxBwAwMDEHADAwMQcAMDAxBwAwMDEHADAwMQcAMDAxBwAwMDEHADAwMQcAMDAxBwAw\nMDEHADAwMQcAMDAxBwAwMDEHADAwMQcAMDAxBwAwMDEHADAwMQcAMDAxBwAwMDEHADAwMQcAMDAx\nBwAwMDEHADAwMQcAMDAxBwAwMDEHADAwMQcAMDAxBwAwMDEHADAwMQcAMDAxBwAwMDEHADAwMQcA\nMDAxBwAwMDEHADAwMQcAMDAxBwAwMDEHADAwMQcAMDAxBwAwMDEHADAwMQcAMDAxBwAwMDEHADAw\nMQcAMDAxBwAwMDEHADAwMQcAMDAxBwAwMDEHADAwMQcAMDAxBwAwMDEHADAwMQcAMDAxBwAwMDEH\nADAwMQcAMDAxBwAwMDEHADAwMQcAMLC9xlxVXV9V26rqoZmxE6tqQ1U9WlV3V9UJM1+7sqo2VdUj\nVXX+zPi5VfVQVT1WVdfOjB9TVbdM29xbVafPfG3dtP6jVXXJ0rxkAIAjx76cmfuTJBfsMvapJN/o\n7rcmuSfJlUlSVW9P8qEkZyd5f5Lrqqqmbb6U5NLuPivJWVW1Y5+XJnmqu9+S5Nokn5/2dWKSzyR5\nd5L3JLlqNhoBANiHmOvubyd5epfhi5LcOC3fmOTiafkDSW7p7he6+/Ekm5KsqapTk7yxu++f1rtp\nZpvZfd2W5H3T8gVJNnT39u7+RZINSS7cj9cGAHDEO9D3zJ3c3duSpLu3Jjl5Gj8tyRMz622Zxk5L\nsnlmfPM0ttM23f1iku1VddKr7AsAgMmqJdpPL9F+kqT2vspirp5ZnluCwwAAOHjz8/OZn58/ZPs/\n0JjbVlWndPe26RLqz6bxLUneNLPe6mlsT+Oz2/ykqo5Ocnx3P1VVW7Jzla1O8s09H9LVuzy/dz9e\nDgDAoTE3N5e5ubmXn69fv35J97+vl1krO58xuyPJh6fldUlunxlfO92hekaSM5PcN12K3V5Va6Yb\nIi7ZZZt10/IHs3BDRZLcneS8qjphuhnivGkMAIDJXs/MVdXXsnCG7Feq6sdJrkryB0n+V1V9JMmP\nsnAHa7p7Y1XdmmRjkueTXNbdOy7BXp7khiTHJrmzu++axq9PcnNVbUryZJK1076erqrPJfleFi7j\nrp9uhAAAYFKvtNa4qqp3f9veNbniimfyhS9csyzHBACwmKpKdx/gPQK78xcgAAAGJuYAAAYm5gAA\nBibmAAAGJuYAAAYm5gAABibmAAAGJuYAAAYm5gAABibmAAAGJuYAAAYm5gAABibmAAAGJuYAAAYm\n5gAABibmAAAGJuYAAAYm5gAABibmAAAGJuYAAAYm5gAABibmAAAGJuYAAAYm5gAABibmAAAGJuYA\nAAYm5gAABibmAAAGJuYAAAYm5gAABibmAAAGJuYAAAYm5gAABibmAAAGJuYAAAYm5gAABibmAAAG\nJuYAAAYm5gAABibmAAAGJuYAAAYm5gAABibmAAAGJuYAAAYm5gAABibmAAAGJuYAAAYm5gAABibm\nAAAGJuYAAAYm5gAABibmAAAGJuYAAAYm5gAABibmAAAGJuYAAAYm5gAABibmAAAGJuYAAAYm5gAA\nBibmAAAGJuYAAAYm5gAABibmAAAGJuYAAAYm5gAABibmAAAGJuYAAAYm5gAABnZQMVdVj1fVX1TV\nA1V13zR2YlVtqKpHq+ruqjphZv0rq2pTVT1SVefPjJ9bVQ9V1WNVde3M+DFVdcu0zb1VdfrBHC8A\nwJHmYM/MvZRkrrt/vbvXTGOfSvKN7n5rknuSXJkkVfX2JB9KcnaS9ye5rqpq2uZLSS7t7rOSnFVV\nF0zjlyZ5qrvfkuTaJJ8/yOMFADiiHGzM1SL7uCjJjdPyjUkunpY/kOSW7n6hux9PsinJmqo6Nckb\nu/v+ab2bZraZ3ddtSf7JQR4vAMAR5WBjrpN8varur6qPTmOndPe2JOnurUlOnsZPS/LEzLZbprHT\nkmyeGd88je20TXe/mOQXVXXSQR4zAMARY9VBbv/e7v5pVf1qkg1V9WgWAm/Wrs8PRu35S1fPLM8t\n4bcEADhw8/PzmZ+fP2T7P6iY6+6fTv/+vKr+LMmaJNuq6pTu3jZdQv3ZtPqWJG+a2Xz1NLan8dlt\n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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x110eb1550>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# 通常のヒストグラム\n",
"fig,ax = plt.subplots(1,1,figsize=(10,7))\n",
"chart = ax.hist(data,100)"
]
},
{
"cell_type": "code",
"execution_count": 215,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"data_x = [1 if e==0 else e for e in data]\n",
"data_log = np.log10(data_x)"
]
},
{
"cell_type": "code",
"execution_count": 218,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\n0udy/sgWChrHNMd52XJzpap+Msmh6Up0ZZ2uII4Y0Ob50NqDSS5Zoc2pZMVz0t3ffO3Sc3d/Ksmb\nquqCkzfEYW21ubKirTxXquqMLIWQe7v7wWWabMn5stJ52cpzprv/Icn/SfITR/xqS86V1xztvGzR\nufKuJDdU1V8n+b0kP15V9xzR5rjny4gBbZ4PrX0oyc1JUlX/IsmL3X3o5A7zpFrxnMzey66qnVn6\nCJUXTu4wN8yx/o9lq82V1xz1nGzxufJbSfZ1968f5fdbdb4c87xstTlTVd9XVedN29+V5N8k+Ysj\nmm25uTLPedlqcyVJuvsj3X1pd/9glv59frS7bz6i2XHPlyE+qHZWH+VDa6vqPy/9un+jux+uqndX\n1V8m+cckP7uRYz7R5jknSf59Vf2XJC8n+X9JfmrjRnzyVNXvJllI8r1V9TdJPprkzGzRuZKsfE6y\ndefKu5L8TJIvT8/QdJKPZGl19FaeLyuel2y9OfP9SXZX1WlZ+jv396e5sWX/HZqseF6y9ebKUa11\nvvigWgCAwYx4ixMAYEsT0AAABiOgAQAMRkADABiMgAYAMBgBDQBgMAIaAMBg/j+PGw2sLuEvhAAA\nAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x1110e7ba8>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig,ax = plt.subplots(1,1,figsize=(10,7))\n",
"chart = ax.hist(data_log,100)"
]
},
{
"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.2"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment