2018年1月27日土曜日

[Python] Jupyter Note Book で CSVファイル をグラフ描画

Jupyter Note Bookを使って,CSVファイルの読み込み,グラフ作成をやってみた際のメモです.

CSV形式では,1行1レコードで記述されています.1レコードはカンマで区切られて,複数のフィールドを持つことができます.以下のようなCSVファイル(都道府県別の人口一覧データ)があるとします.

prefectures,2000,2005,2010,2015,2016
Tokyo,12064,12577,13159,13515,13624
Kanagawa,8490,8792,9048,9126,9145
Osaka,8805,8817,8865,8839,8833
Aichi,7043,7255,7411,7483,7507
Saitama,6938,7054,7195,7267,7289
Chiba,5926,6056,6216,6223,6236
Hyogo,5551,5591,5588,5535,5520
Hokkaido,5683,5628,5506,5382,5352
Fukuoka,5016,5050,5072,5102,5104
Shizuoka,3767,3792,3765,3700,3688
Ibaraki,2986,2975,2970,2917,2905
Hiroshima,2879,2877,2861,2844,2837
Kyoto,2644,2648,2636,2610,2605
Miyagi,2365,2360,2348,2334,2330
Nigata,2476,2431,2374,2304,2286
Nagano,2215,2196,2152,2099,2088
Gifu,2108,2107,2081,2032,2022
Gunma,2025,2024,2008,1973,1967
Tochigi,2005,2017,2008,1974,1966
Okayama,1951,1957,1945,1922,1915
Fukushima,2127,2091,2029,1914,1901
Mie,1857,1867,1855,1816,1808
Kumamoto,1859,1842,1817,1786,1774
Kagoshima,1786,1753,1706,1648,1637
Okinawa,1318,1362,1393,1434,1439
Shiga,1343,1380,1411,1413,1413
Yamaguchi,1528,1493,1451,1405,1394
Ehime,1493,1468,1431,1385,1375
Nagasaki,1517,1479,1427,1377,1367
Nara,1443,1421,1401,1364,1356
Aomori,1476,1437,1373,1308,1293
Iwate,1416,1385,1330,1280,1268
Ohita,1221,1210,1197,1166,1160
Ishikawa,1181,1174,1170,1154,1151
Yamagata,1244,1216,1169,1124,1113
Miyagi,1170,1153,1135,1104,1096
Toyama,1121,1112,1093,1066,1061
Akita,1189,1146,1086,1023,1010
Kagawa,1023,1012,996,976,972
Wakayama,1070,1036,1002,964,954
Yamanashi,888,885,863,835,830
Saga,877,866,850,833,828
Fukui,829,822,806,787,782
Tokushima,824,810,785,756,750
Kochi,814,796,764,728,721
Shimane,762,742,717,694,690
Tottori,613,607,589,573,570


このCSVファイル(SampleData.csv)を,Jupyter Note Bookで読み込んでみます.
まず,読み込むCSVファイルをJupyterを起動するディレクトリにコピーします.

Jupyter Note Bookを起動して,画面右上の"New"ボタンから"Python3"を選んでクリックします.

以下の二行のプログラムを入力します.

    import pandas as pd
    pd.read_csv("SampleData.csv", encoding="UTF-8")


CSVデータ(SampleData.csv)が表示されています.
SampleData.csvは,人口の多い都道府県順に並んでいます.このデータを2016年度の人口データを元にして,人口の少ない順に並び替え(ソート)を行ってみます.

    import pandas as pd
    df = pd.read_csv("population.csv", encoding="SHIFT_JIS")
    df.sort_values(by=["平成28年"], ascending=True)


Pythonでは,上記のように非常に簡潔に記述できます.
なお,
    ascending=True
の部分を
    ascending=False
と書き換えると、人口の多い順(つまり、降順)に並び替えられます.



続いて,CSVファイルをもとに,棒グラフを描画(2016年をY軸にして棒グラフを描画)してみます.

    %matplotlib inline
    import pandas as pd
    df = pd.read_csv("SampleData.csv", encoding="UTF-8")
    df.plot.bar(y=['2016'])


Jupyter Note Book でグラフ描画するときは
    %matplotlib inline
という一行を記述する必要があります.
また,棒グラフを書くためには plot.barメソッド を呼びだします.
さらに,複数列を持つCSVデータの場合は,どの列をY軸にするかを指定します.
すれば良い。
2つの列を並べたグラフにしたい場合は,以下のようにします(例は2000年,2016年).色分けも自動です.

2018年1月6日土曜日

[Python] ベクトルの演算

Pythonによるベクトル演算に関するメモです.
実行例は,REPLによるものです.

ベクトルの演算にはNumPyが必要なのでインポートします.
>>> import numpy as np

まずは,適当にベクトルを生成してみます.
>>> x = np.array([5,-2]) # x にベクトル [5,-2] を代入
>>> x
array([ 5, -2])

生成したベクトルの諸元を調べるには以下のコマンドを実行します.
>>> x.ndim  # 配列の次元
1
>>> x.shape # 配列のサイズ
(2,)
>>> len(x)  # 配列の要素数
2
x.ndimは配列の次元を調べるコマンド
x.shapeは配列のサイズ(ベクトルの次元)を調べるコマンド
lenは配列の要素数を調べるコマンド

ベクトルを生成するには,以下のようなコマンドでもベクトルを生成することが可能です.
>>> a = np.arange(5)
>>> a
array([0, 1, 2, 3, 4])
>>> b = np.arange(0, 5)
>>> b
array([0, 1, 2, 3, 4])
>>> c = np.arange(10, 2, -2)
>>> c
array([10,  8,  6,  4])
>>> d = np.arange(10, 2, -2)
>>> d
array([10,  8,  6,  4])





2018年1月5日金曜日

[Python] 順列,組合せ

順列,組合せの計算例を以下に示します.
計算例は,REPLで実行しています.

順列
1, 2, 3 の3つのすべての並べ方は, $3! = 3 \times 2 \times 1 = 6$ 通りとなります.
順列を求める時には,itertoolsのpermutationsを利用します.
>>> import itertools
>>> seq = (1, 2, 3)
>>> list(itertools.permutations(seq))
[(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]
>>> len(list(itertools.permutations(seq)))
6
6通りの組み合わせであることが確認できます.

1, 2, 3, 4, 5 から3つを選ぶ並べ方は,${}_5 P _3=5 \times 4 \times 3 = 60$ 通りとなります.
順列の際には,permutations の第二引数として,選ぶ数(この例では3)を記載します.
>>> seq2 = (1, 2, 3, 4, 5)
>>> list(itertools.permutations(seq2, 3))
[(1, 2, 3), (1, 2, 4), (1, 2, 5), (1, 3, 2), (1, 3, 4), (1, 3, 5), (1, 4, 2), (1, 4, 3), (1, 4, 5), (1, 5, 2), (1, 5, 3), (1, 5, 4), (2, 1, 3), (2, 1, 4), (2, 1, 5), (2, 3, 1), (2, 3, 4), (2, 3, 5), (2, 4, 1), (2, 4, 3), (2, 4, 5), (2, 5, 1), (2, 5, 3), (2, 5, 4), (3, 1, 2), (3, 1, 4), (3, 1, 5), (3, 2, 1), (3, 2, 4), (3, 2, 5), (3, 4, 1), (3, 4, 2), (3, 4, 5), (3, 5, 1), (3, 5, 2), (3, 5, 4), (4, 1, 2), (4, 1, 3), (4, 1, 5), (4, 2, 1), (4, 2, 3), (4, 2, 5), (4, 3, 1), (4, 3, 2), (4, 3, 5), (4, 5, 1), (4, 5, 2), (4, 5, 3), (5, 1, 2), (5, 1, 3), (5, 1, 4), (5, 2, 1), (5, 2, 3), (5, 2, 4), (5, 3, 1), (5, 3, 2), (5, 3, 4), (5, 4, 1), (5, 4, 2), (5, 4, 3)]
>>> 
>>> len(list(itertools.permutations(seq2, 3)))
60
60通りの組み合わせであることが確認できます.

組合せ
1, 2, 3, 4, 5 から3つを選ぶ組合せは, ${}_5 C _3= \frac{{}_5 P_3}{3!} = 10$ 通りとなります.
順列を求める時には,itertoolsのccombinationsを利用します.
>>> list(itertools.combinations(seq2, 3))
[(1, 2, 3), (1, 2, 4), (1, 2, 5), (1, 3, 4), (1, 3, 5), (1, 4, 5), (2, 3, 4), (2, 3, 5), (2, 4, 5), (3, 4, 5)]
>>> len(list(itertools.combinations(seq2, 3)))
10
10通りの組合せであることが確認できます.

上記の例のJupyter NotebookはGitHubFactorialPermutationCombination.ipynbで見ることができます.

2018年1月4日木曜日

[Python] 二項分布

Pythonで二項分布のグラフをプロットすることを考えてみます.
二項分布の確率質量関数は

$\mathrm{Bin}(m | M, \mu) = {}_M C_m \mu^{m} (1 - \mu)^{M - m}$

となるので,以下のように実装してみます.

xlist = pd.Series([comb(float(M), x) * mu ** x * (1 - mu) ** (float(M) - x)\
    for x in range(0, mu+1)])

グラフにプロットするに,以下のようなコードとして,Jupyter Notebookでプロット結果を確認しました.

from scipy.special import comb      # function to calculate combinations
import numpy as np
import pandas as pd                 # for Series
import matplotlib.pyplot as plt     # for plotting graph
import pylab                        # for change graph size


M = 50      # number of trials
mu = 0.5    # the probability of an event occurring

xlist = pd.Series([comb(float(M), x) * mu ** x * (1 - mu) ** (float(M) - x)\
    for x in range(0, mu+1)])

pylab.figure(figsize = (10, 5))     # specify graph size
plt.bar(xlist.index, xlist)
plt.xlim(0, 50)                     # set the range of X axis values

plt.xticks(np.arange(0, n+1, 10))   # specify the scale of the X axis in 10 steps


なお,上記の例のJupyter Notebookファイルは,GitHubBinomial distribution.ipynbというファイルで見ることができます.

2018年1月3日水曜日

[Python] 整数の乱数を発生させる

Pythonにおいて,整数の乱数を発生させるプログラムを書く際のメモです.

整数の乱数なので,1〜6の目のついたサイコロを振ることを例に考えます.
まずは,NumPyを呼び出します.
>>> import numpy as np

20回サイコロを振る(整数の乱数を発生させる)ことを想定して,乱数を発生させるには,以下のようにします.
>>> np.random.choice(np.arange(1, 7), 20)
array([4, 2, 5, 1, 6, 5, 5, 3, 1, 5, 4, 4, 3, 4, 1, 5, 2, 1, 2, 2])
関数"np.random.chice()"は,ランダムな要素を取り出す関数です.

np.random.chice(sample, times)

上記の例では,sample = np.arange(), times = 20 としています.

関数"np,arrange()"は公差(間隔)を指定した連番を発生させる関数です.
()内は (start, stop)を意味しており,発生させる整数の区間を指定しています.

np.arange(start, stop)

上記の例のように(1, 7)とした場合は,発生させる乱数$r$は$1 < r \leq 7$となります.

ちなみに,以下のようにarange(start, stop, step) と指定すると,startから始まって,stopまでの,stepの値を公差とする等差数列を生成します.
>>> np.arange(1, 20, 3)
array([ 1,  4,  7, 10, 13, 16, 19])
"step"を指定しない場合は step = 1 となるので,サイコロのように公差が1の場合は指定は要りません.

"np.random.choice(np.arange(1, 7), 20)"では,まず"np.arange(1, 7)"でstart = 1, stop = 7の整数を発生させて,そこから,20個の要素をランダムに抽出する以下のような処理を行っています.

1. サイコロの目をdiceという1次元配列に格納する.
>>> dice = np.arange(1, 7, 1)
>>> dice
array([1, 2, 3, 4, 5, 6])
2. diceに格納された1〜6の目からランダムに要素を抜き出す.
>>> np.random.choice(dice, 20)
array([6, 4, 2, 6, 4, 3, 4, 3, 1, 2, 1, 4, 1, 1, 3, 4, 4, 2, 1, 3])

結果は1次元の配列に格納されています.

この例では,同じ要素を何度も取り出すことが可能な復元抽出になっていることがわかります.
choiseコマンドは,デフォルトでは復元抽出となるので,上記の例では記載していませんが,復元抽出を行うことを指定する場合は以下のようにします.
>>> np.random.choice(np.arange(1, 7), 20, replace = True)
array([5, 6, 4, 5, 3, 6, 3, 1, 4, 4, 6, 2, 1, 2, 4, 4, 5, 4, 2, 3])

一方で,非復元抽出を行う場合は,以下のようにします.
>>> np.random.choice(np.arange(1, 7), 6, replace = False)
array([5, 3, 4, 6, 1, 2])
ここで,非復元抽出なので,乱数を発生させる回数を6としています.
同じ目が出ていないことが確認できます.

試しに,元の20にしてみると,当然,以下のようにエラーとなります.
>>> np.random.choice(np.arange(1, 7), 20,replace=False)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "mtrand.pyx", line 1166, in mtrand.RandomState.choice
ValueError: Cannot take a larger sample than population when 'replace=False'

ここまでのサンプリングでは,標本は等確率でサンプリングされます.
等間隔でない分布からサンプリングを行うことを表現するには,"pオプション"を使用します.

>>> p = np.array([1, 1, 2, 2, 3, 3]); p = p / np.sum(p)
>>> np.random.choice(np.arange(1, 7), 12, p = p, replace = True)
array([5, 5, 4, 4, 4, 3, 5, 5, 1, 6, 1, 3])
pオプションでは,1〜6の目の出やすさを 1: 1: 2: 2: 3: 3 の比率に設定しています.また,pオプションに渡す配列は確率なので,総和が1である必要があります.なので,pを"np.sum(p)"で割ることで規格化しています.
すなわち,1と2の目がでる確率は 1/12,3と4の目がでる確率は1/6(= 2/12) ,5と6の目がでる確率は 1/4(=3/12)となります.
生成された値を見ると,1が1/12回,2が0/12回,3が2/12回,4が3/12回,5が4/12回,6が1/12回となっています.


2018年1月2日火曜日

[Anconda] Anacondaのアップデート

Anacondaをアップデートした際のメモです.

ターミナルから,以下のコマンドを実行します.
$ conda update conda
すると,以下のような処理が始まります.

Solving environment: done


## Package Plan ##

  environment location: /Users/hide/anaconda3

  added / updated specs: 
    - conda


The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    conda-4.5.5                |           py36_0         1.0 MB

The following packages will be UPDATED:

    conda: 4.4.10-py36_0 --> 4.5.5-py36_0

Proceed ([y]/n)? y
そして,y [enter]とすると

Downloading and Extracting Packages

conda 4.5.5: ################################################################################################### | 100% 
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
となり,終了.

続いて,以下のコマンドでアップデートを行います.
$ conda update --all
すると,以下のような処理が始まります.
Solving environment: done


==> WARNING: A newer version of conda exists. <==
  current version: 4.4.10
  latest version: 4.5.5

Please update conda by running

    $ conda update -n base conda



## Package Plan ##

  environment location: /Users/hide/anaconda3


The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    intel-openmp-2018.0.3      |                0        1004 KB
    urllib3-1.23               |           py36_0         152 KB
    pytz-2018.5                |           py36_0         231 KB
    pip-10.0.1                 |           py36_0         1.8 MB
    libtiff-4.0.9              |       hcb84e12_1         543 KB
    wheel-0.31.1               |           py36_0          62 KB
    python-3.6.6               |       hc167b69_0        15.4 MB
    psutil-5.4.6               |   py36h1de35cc_0         314 KB
    glib-2.56.1                |       h35bc53a_0         4.7 MB
    ncurses-6.1                |       h0a44026_0         888 KB
    cryptography-2.2.2         |   py36h1de35cc_0         554 KB
    packaging-17.1             |           py36_0          33 KB
    pcre-8.42                  |       h378b8a2_0         224 KB
    numpy-1.14.5               |   py36h9bb19eb_3          93 KB
    sqlite-3.24.0              |       ha441bb4_0         2.2 MB
    pyqt-5.9.2                 |   py36h11d3b92_0         4.6 MB
    numexpr-2.6.5              |   py36h057f876_0         124 KB
    cffi-1.11.5                |   py36h342bebf_0         204 KB
    tornado-5.0.2              |           py36_0         646 KB
    pyopenssl-18.0.0           |           py36_0          82 KB
    dbus-1.13.2                |       h760590f_1         540 KB
    qt-5.9.6                   |       h74ce4d9_0        78.6 MB
    python-dateutil-2.7.3      |           py36_0         260 KB
    xz-5.2.4                   |       h1de35cc_4         269 KB
    idna-2.7                   |           py36_0         132 KB
    requests-2.19.1            |           py36_0          96 KB
    ruamel_yaml-0.15.42        |   py36h1de35cc_0         228 KB
    libedit-3.1.20170329       |       hb402a30_2         154 KB
    pillow-5.1.0               |   py36hfcce615_0         542 KB
    decorator-4.3.0            |           py36_0          15 KB
    scipy-1.1.0                |   py36hcaad992_0        15.4 MB
    numpy-base-1.14.5          |   py36ha9ae307_3         4.0 MB
    setuptools-39.2.0          |           py36_0         551 KB
    sip-4.19.8                 |   py36h0a44026_0         252 KB
    pysocks-1.6.8              |           py36_0          22 KB
    ------------------------------------------------------------
                                           Total:       134.8 MB

The following packages will be UPDATED:

    cffi:            1.11.4-py36h342bebf_0  --> 1.11.5-py36h342bebf_0  
    cryptography:    2.1.4-py36h842514c_0   --> 2.2.2-py36h1de35cc_0   
    dbus:            1.12.2-h5243cc1_1      --> 1.13.2-h760590f_1      
    decorator:       4.2.1-py36_0           --> 4.3.0-py36_0           
    glib:            2.53.6-h33f6a65_2      --> 2.56.1-h35bc53a_0      
    idna:            2.6-py36h8628d0a_1     --> 2.7-py36_0             
    intel-openmp:    2018.0.0-h8158457_8    --> 2018.0.3-0             
    libedit:         3.1-hb4e282d_0         --> 3.1.20170329-hb402a30_2
    libtiff:         4.0.9-h0dac147_0       --> 4.0.9-hcb84e12_1       
    ncurses:         6.0-hd04f020_2         --> 6.1-h0a44026_0         
    numexpr:         2.6.4-py36habcfcfe_0   --> 2.6.5-py36h057f876_0   
    numpy:           1.14.5-py36h9bb19eb_0  --> 1.14.5-py36h9bb19eb_3  
    numpy-base:      1.14.5-py36ha9ae307_0  --> 1.14.5-py36ha9ae307_3  
    packaging:       16.8-py36he5e8135_0    --> 17.1-py36_0            
    pcre:            8.41-hfb6ab37_1        --> 8.42-h378b8a2_0        
    pillow:          5.0.0-py36hfcce615_0   --> 5.1.0-py36hfcce615_0   
    pip:             9.0.1-py36h1555ced_4   --> 10.0.1-py36_0          
    psutil:          5.4.3-py36h1de35cc_0   --> 5.4.6-py36h1de35cc_0   
    pyopenssl:       17.5.0-py36h51e4350_0  --> 18.0.0-py36_0          
    pyqt:            5.6.0-py36he5c6137_6   --> 5.9.2-py36h11d3b92_0   
    pysocks:         1.6.7-py36hfa33cec_1   --> 1.6.8-py36_0           
    python:          3.6.4-hc167b69_1       --> 3.6.6-hc167b69_0       
    python-dateutil: 2.6.1-py36h86d2abb_1   --> 2.7.3-py36_0           
    pytz:            2017.3-py36hf0bf824_0  --> 2018.5-py36_0          
    qt:              5.6.2-h9975529_14      --> 5.9.6-h74ce4d9_0       
    requests:        2.18.4-py36h4516966_1  --> 2.19.1-py36_0          
    ruamel_yaml:     0.15.35-py36h1de35cc_1 --> 0.15.42-py36h1de35cc_0 
    scipy:           1.0.0-py36h1de22e9_0   --> 1.1.0-py36hcaad992_0   
    setuptools:      38.4.0-py36_0          --> 39.2.0-py36_0          
    sip:             4.18.1-py36h2824476_2  --> 4.19.8-py36h0a44026_0  
    sqlite:          3.22.0-h3efe00b_0      --> 3.24.0-ha441bb4_0      
    tornado:         4.5.3-py36_0           --> 5.0.2-py36_0           
    urllib3:         1.22-py36h68b9469_0    --> 1.23-py36_0            
    wheel:           0.30.0-py36h5eb2c71_1  --> 0.31.1-py36_0          
    xz:              5.2.3-h0278029_2       --> 5.2.4-h1de35cc_4       

Proceed ([y]/n)? y
そして,y [enter]とすると,
Downloading and Extracting Packages
intel-openmp 2018.0.3: ######################################################################################### | 100% 
urllib3 1.23: ################################################################################################## | 100% 
pytz 2018.5: ################################################################################################### | 100% 
pip 10.0.1: #################################################################################################### | 100% 
libtiff 4.0.9: ################################################################################################# | 100% 
wheel 0.31.1: ################################################################################################## | 100% 
python 3.6.6: ################################################################################################## | 100% 
psutil 5.4.6: ################################################################################################## | 100% 
glib 2.56.1: ################################################################################################### | 100% 
ncurses 6.1: ################################################################################################### | 100% 
cryptography 2.2.2: ############################################################################################ | 100% 
packaging 17.1: ################################################################################################ | 100% 
pcre 8.42: ##################################################################################################### | 100% 
numpy 1.14.5: ################################################################################################## | 100% 
sqlite 3.24.0: ################################################################################################# | 100% 
pyqt 5.9.2: #################################################################################################### | 100% 
numexpr 2.6.5: ################################################################################################# | 100% 
cffi 1.11.5: ################################################################################################### | 100% 
tornado 5.0.2: ################################################################################################# | 100% 
pyopenssl 18.0.0: ############################################################################################## | 100% 
dbus 1.13.2: ################################################################################################### | 100% 
qt 5.9.6: ###################################################################################################### | 100% 
python-dateutil 2.7.3: ######################################################################################### | 100% 
xz 5.2.4: ###################################################################################################### | 100% 
idna 2.7: ###################################################################################################### | 100% 
requests 2.19.1: ############################################################################################### | 100% 
ruamel_yaml 0.15.42: ########################################################################################### | 100% 
libedit 3.1.20170329: ########################################################################################## | 100% 
pillow 5.1.0: ################################################################################################## | 100% 
decorator 4.3.0: ############################################################################################### | 100% 
scipy 1.1.0: ################################################################################################### | 100% 
numpy-base 1.14.5: ############################################################################################# | 100% 
setuptools 39.2.0: ############################################################################################# | 100% 
sip 4.19.8: #################################################################################################### | 100% 
pysocks 1.6.8: ################################################################################################# | 100% 
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
となり,終了です.

2018年1月1日月曜日

[Anconda] Ancondaのインストール

PythonのIDEとしてはAnacondaが有名です.Anaconda はデータサイエンスに特化したプラットフォームを提供する目的で作成されています.
一般的に Python の世界では大量のデータを分析するツールやライブラリは,パフォーマンスが重要視されるので,C/C++ といった言語で開発された拡張モジュール (Python インタプリタの拡張と埋め込み) を含むパッケージが多いようです.
これらのパッケージをインストールするには,ローカル環境で使っている OS 向けにコンパイルしてインストールする必要がありますが,Anaconda はコンパイル済みのパッケージを提供する (バイナリーディストリビューション) ことによって,ローカル環境でコンパイルすることなくインストールが可能です.

OS X 向けのインストーラーはこちらからダウンロードします.
グラフィカルとコマンドラインインストーラーの両方が用意されています.
ここでは,グラフィカル版をダウンロードしてインストールします.
また,Python 2系と3系がありますが,2系のサポートが2020年までであることを考えると,3系を選ぶ方が良いと思います.

インストールは,ダウンロードしたパッケージを実行し,Next,Yesなどを押していくだけで完了します(インストール先を敢えて指定する必要がなければ).

個人環境向けにインストールすると以下の場所にインストールされます.
$ ls ~/anaconda3/
Anaconda-Navigator.app libexec python.app
bin man qml
conda-meta mkspecs resources
doc org.freedesktop.dbus-session.plist share
etc phrasebooks ssl
include pkgs translations
lib plugins

確認のためにPythonを実行してみます.
そして,試しにnumpyをインポートしてみると,Anaconda環境のnumpyがインポートされる事を確認できます.
$ python
Python 3.6.2 |Anaconda custom (64-bit)| (default, Sep 21 2017, 18:29:43) 
[GCC 4.2.1 Compatible Clang 4.0.1 (tags/RELEASE_401/final)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy
>>> numpy._file_
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: module 'numpy' has no attribute '_file_'
>>> numpy.__file__
'/anaconda3/lib/python3.6/site-packages/numpy/__init__.py'
>>> 

インストールが完了したら,Anacondaを立ち上げます.
使用するのはJupyterのLaunchボタンをクリックします.
すると,まず以下のようにターミナルが立ち上がります.
Last login: Sat Jan 13 11:16:02 on ttys000
$ /Users/hide/anaconda3/bin/jupyter_mac.command ; exit;
[I 11:27:45.561 NotebookApp] JupyterLab alpha preview extension loaded from /Users/hide/anaconda3/lib/python3.6/site-packages/jupyterlab
JupyterLab v0.27.0
Known labextensions:
[I 11:27:45.562 NotebookApp] Running the core application with no additional extensions or settings
[I 11:27:45.570 NotebookApp] Serving notebooks from local directory: /Users/hide
[I 11:27:45.570 NotebookApp] 0 active kernels 

[I 11:27:45.570 NotebookApp] The Jupyter Notebook is running at: http://localhost:8888/?token=285265b5f4a2a1adcc19d9f5766250a327e0792dc53d1d07

[I 11:27:45.570 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[C 11:27:45.574 NotebookApp] 
    
    Copy/paste this URL into your browser when you connect for the first time,
    to login with a token:
        http://localhost:8888/?token=285265b5f4a2a1adcc19d9f5766250a327e0792dc53d1d07
[I 11:27:46.100 NotebookApp] Accepting one-time-token-authenticated connection from ::1
そして,以下のようにブラウザが立ち上がります.
Pythonは,Anacondaを使用しなくてもターミナルからも実行できます.
$ Python
Python 3.6.3 |Anaconda, Inc.| (default, Oct  6 2017, 12:04:38) 
[GCC 4.2.1 Compatible Clang 4.0.1 (tags/RELEASE_401/final)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 1 + 2
3
>>> (1 + 2) * 3
9
>>> 7 ** 1000
125325663996571831810755483238273420616498507508098617146349500752097059631738116432448839054351520763198615919551594076685828989467263022761790838270854579830015111246661203984624358929832571615718014704096305668097507613273663023226895250541385927158426088684494082416768617708189592286936039922311125683719215046689156738352590137241554510185855964549927575493247391132548534378497978806084951085874202011836362315727420109554782988791530088289711844550500230485638413189947132142243947334199259300735622492937419453650061490302105127920314430401636855677549136337481321811349678427076091437345045399337348611261168055929355402992823192491190360027036112283180935872775214517464013178274657100736321564606838252739601156414628445543663144696050650160812621814327062666195172701780200286645023823083185928061371310300829284071141207731280600001
>>> 

Anacondaの動作確認例: