Pandas入門 (2017/05/30)

Pandasで私自身がよく使うものに限って簡単に説明する。

この記事は内容を随時追加する。

Pandasのインポート

import pandas as pd

DataFrame

a = pd.DataFrame([[1, 2], [3, 4], [5, 6]])
b = pd.DataFrame([[1, 2], [3, 4], [5, 6]], index=['row1', 'row2', 'row3'], columns=['col1', 'col2'])
print(a)
print(b)

   0  1
0  1  2
1  3  4
2  5  6
      col1  col2
row1     1     2
row2     3     4
row3     5     6

DataFrameの要素へのアクセス

a = pd.DataFrame([[1, 2], [3, 4], [5, 6]])
print(a)
print(a.iloc[1, 1])

   0  1
0  1  2
1  3  4
2  5  6
4

Python標準ライブラリ入門 (2017/05/30)

Pythonの標準ライブラリで私自身がよく使うものに限って簡単に説明する。

この記事は内容を随時追加する。

datetime

datetimeのインポート

from datetime import datetime
from datetime import timedelta

str型をdatetime型に変換

a = '2017.01.01 00:00'
print(a)
print(datetime.strptime(a, '%Y.%m.%d %H:%M'))

2017.01.01 00:00
2017-01-01 00:00:00

datetime型をstr型に変換

a = datetime.strptime('2017.01.01 00:00', '%Y.%m.%d %H:%M')
print(a)
print(a.strftime('%Y.%m.%d %H:%M'))

2017-01-01 00:00:00
2017.01.01 00:00

日付の加算・減算

a = datetime.strptime('2017.01.01 00:00', '%Y.%m.%d %H:%M')
b = timedelta(minutes=5)
print(a)
print(b)
print(a + b)
print(a - b)

2017-01-01 00:00:00
0:05:00
2017-01-01 00:05:00
2016-12-31 23:55:00

NumPy入門 (2017/05/30)

NumPyで私自身がよく使うものに限って簡単に説明する。

この記事は内容を随時追加する。

NumPyのインポート

import numpy as np

配列

a = np.array([1, 2, 3])
print(a)

[1 2 3]

連続した整数の生成

a = np.arange(-5, 5)
b = np.arange(-5, 5, 2)
print(a)
print(b)

[-5 -4 -3 -2 -1  0  1  2  3  4]
[-5 -3 -1  1  3]

非数値

a = np.nan
print(a)

nan

非数値の確認

a = np.array([np.nan, 1])
print(a)
print(np.isnan(a))

[ nan   1.]
[ True False]

切り上げ

a = 1.2
print(a)
print(np.ceil(a))

1.2
2.0

切り捨て

a = 1.8
print(a)
print(np.floor(a))

1.8
1.0

四捨五入

a = 1.234
b = 9.876
print(a)
print(b)
print(np.round(a))
print(np.round(b))
print(np.round(a, 2))
print(np.round(b, 2))

1.234
9.876
1.0
10.0
1.23
9.88

要素へのアクセス

a = np.arange(-5, 5)
print(a)
print(a[2])

[-5 -4 -3 -2 -1  0  1  2  3  4]
-3

要素の検索

a = np.arange(1, 10)
print(a)
print(a[a==5])
print(a[a>5])
print(a[(a>3) & (a<8)])
print(a[(a<3) | (a>8)])

[1 2 3 4 5 6 7 8 9]
[5]
[6 7 8 9]
[4 5 6 7]
[1 2 9]

配列の型変換

a = np.array([1, 2, 3])
print(a)
print(a.astype(float))

[1 2 3]
[ 1.  2.  3.]

Pythonのインストール (2017/04/11)

Ubuntuには初めからPythonがインストールされている。しかし、ここではAnacondaをインストールして、その中のPythonを使うことにする。いくつかのライブラリはAnacondaからのほうが導入が楽だからである。

Anacondaのインストール

①以下のアドレスをクリックする。

https://www.continuum.io/downloads#linux

②「Anaconda 4.3.1 For Linux」で「Python 3.6 version」の「64-BIT INSTALLER (474M)」ボタンをクリックする。

③「Anaconda3-4.3.1-Linux-x86_64.sh を開く」で「ファイルを保存する」を選択する。

④「OK」ボタンをクリックする。

ファイルは「~/ダウンロード」フォルダーに保存される。

⑤もし「THANK YOU FOR DOWNLOADING ANACONDA!」という表示が出たら、「×」ボタンをクリックして閉じる。

⑥以下のコマンドを実行してインストールを始める。

$ bash ~/ダウンロード/Anaconda3-4.3.1-Linux-x86_64.sh

⑦「Please, press ENTER to continue」で「Please answer 'yes' or 'no':」と表示されるまで「Enter」キーを押し続ける。

⑧「Please answer 'yes' or 'no':」で「yes」と入力して「Enter」キーを押す。

⑨「[/home/****/anaconda3] >>>」で「Enter」キーを押す。

⑩「[no] >>>」で「yes」と入力して「Enter」キーを押す。

⑪端末を再起動して設定を反映させる。

Anacondaのアップデート

①以下のコマンドを実行してcondaをアップデートする。

$ conda update conda

②もし「Proceed ([y]/n)?」と表示されたら「Enter」キーを押す。

③以下のコマンドを実行してanacondaをアップデートする。

$ conda update anaconda

④もし「Proceed ([y]/n)?」と表示されたら「Enter」キーを押す。

⑤以下のコマンドを実行してすべてをアップデートする。

$ conda update --all

⑥もし「Proceed ([y]/n)?」と表示されたら「Enter」キーを押す。

ライブラリのインストール

Anacondaにデフォルトでは含まれていないが、使うことのあるライブラリをインストールする。

①以下のコマンドを実行してOANDA APIをインストールする。

$ pip install git+https://github.com/oanda/oandapy.git

ここではPython 3.6対応、CPUのみのバージョンをインストールする。

②以下のコマンドを実行してTensorFlowをインストールする。

$ pip install --ignore-installed --upgrade https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-1.0.1-cp36-cp36m-linux_x86_64.whl

③もし「Proceed ([y]/n)?」と表示されたら「Enter」キーを押す。

④以下のコマンドを実行してCVXOPTをインストールする。

$ conda install cvxopt

⑤もし「Proceed ([y]/n)?」と表示されたら「Enter」キーを押す。

⑥以下のコマンドを実行してpandas-datareaderをインストールする。

$ conda install pandas-datareader

⑦もし「Proceed ([y]/n)?」と表示されたら「Enter」キーを押す。

⑧以下のコマンドを実行してpandas-datareaderをインストールする。

$ conda install -c conda-forge jupyter_contrib_nbextensions

⑨もし「Proceed ([y]/n)?」と表示されたら「Enter」キーを押す。

作業用フォルダーの作成

「ホーム」フォルダーに「py」フォルダーを作成して、これを作業用フォルダーとする。

○以下のコマンドを実行して「ホーム」フォルダーに「py」フォルダーを作成する。

$ mkdir ~/py

SpyderのLauncherへの登録

①以下のコマンドを実行してSpyderを起動する。

$ spyder

②Launcher上の「Spyder (Python 3.4)」を右クリックする。

③「Launcherに登録」を選択する。

Spyderの設定

①Spyderのメニューバーで「ツール」をクリックする。

②「設定」をクリックする。

③「設定」で「グローバル作業ディレクトリ」をクリックする。

④「スタートアップ」で「以下のディレクトリ」を選択する。

⑤続いて「/home/****/py」を選択する。

⑥「ファイルを開く」で「グローバル作業ディレクトリ」を選択する。

⑦「新規ファイル」で「グローバル作業ディレクトリ」を選択する。

⑧「設定」で「IPythonコンソール」をクリックする。

⑨「グラフィックス」タブをクリックする。

⑩「画像のサポート(Matplotlib)」で「サポートを有効化」にチェックを入れる。

⑪「OK」ボタンをクリックする。

ライブラリのチュートリアル(入門レベル)

pandas

http://pandas.pydata.org/pandas-docs/stable/10min.html

scikit-learn

http://scikit-learn.org/stable/tutorial/basic/tutorial.html

TensorFlow

https://www.tensorflow.org/get_started/get_started

tf.contrib.learn

https://www.tensorflow.org/get_started/tflearn

Pythonの基礎 (2017/05/30)

標準ライブラリの範囲でPythonの使い方を簡単に説明する。

ここで取り上げる内容は私が実際に使っているものに限っている。そのため、かなり偏りがあると思う。ただ、こういうものはどうしても「帯に短し襷に長し」となりがちである。私と共通の関心を持つ人にはちょうどよいのではないかと思う。

この記事は内容を随時追加する。

文字の出力

print("Hello, World!")

Hello, World!

コメントアウト(1行)

# これはコメントです。
print("Hello, World!")

Hello, World!

コメントアウト(複数行)

'''これはコメントです。
これはコメントです。
これはコメントです。
'''
print("Hello, World!")

Hello, World!

変数

s = "Hello, World!"
print(s)

Hello, World!

定数

Pythonでは定数というのはないようである。ただ、定数として使いたい場合は大文字にして変数と区別する慣習らしい。

S = "Hello, World!"
print(S)

Hello, World!

整数

print(1)

1

浮動小数点数

print(1.0)

1.0

指数表記

print('通常の表記')
print(100.0)
print(0.01)
print('指数表記')
print(1.0e+2)
print(1.0e-2)

通常の表記
100.0
0.01
指数表記
100.0
0.01

リスト

l = [768, 7968]
print(l)
print(l[0])
print(l[1])

[768, 7968]
768
7968

タプル

t = (768, 7968)
print(t)
print(t[0])
print(t[1])

(768, 7968)
768
7968

slice()関数

l = [768, 7968, 3465, 5810, 239, 6777, 2618, 8716, 4100, 7634]
s1 = slice(0, 9, 2)
s2 = slice(0, 9, 3)
print(l[s1])
print(l[s2])

[768, 3465, 239, 2618, 4100]
[768, 5810, 2618]

型変換

str型に変換しても見た目は変わらない。

print(float(1))
print(int(1.0))
print(str(1))
print(str(1.0))

1.0
1
1
1.0

算術演算子

print(1 + 2)
print(1 - 2)
print(1 * 2)
print(1 / 2)
print(1 % 2)

3
-1
2
0.5
1

関係演算子

print(1 == 2)
print(1 != 2)
print(1 > 2)
print(1 < 2)
print(1 >= 2)
print(1 <= 2)

False
True
False
True
False
True

論理演算子

print(True & True)
print(True & False)
print(False & False)
print(True | True)
print(True | False)
print(False | False)

True
False
False
True
True
False

if文

a = 3
if a == 1:
    print('aは1です。')
elif a == 2:
    print('aは2です。')
else:
    print('aは1でも2でもありません。')

aは1でも2でもありません。

or

a = 1
if a == 1 or a == 2:
    print('aは1、または2です。')
else:
    print('aは1でも2でもありません。')

aは1、または2です。

and

a = 1.5
if a >= 1 and a < 2:
    print('aは1以上、かつ2未満です。')
else:
    print('aは1未満、または2以上です。')

aは1以上、かつ2未満です。

for文

for i in range(3):
    print(i+1, '回目のループです。')

1 回目のループです。
2 回目のループです。
3 回目のループです。

while文

i = 0
while i < 3:
    print(i+1, '回目のループです。')
    i = i + 1

1 回目のループです。
2 回目のループです。
3 回目のループです。

関数の作成

def func(a, b):
    return a + b

ans = func(1, 2)
print(ans)

3

プログラムファイルの実行

①以下のコードを「test.py」ファイルとして「~/py」フォルダーに保存する。

print('Hello, world!')

②以下のコマンドをIPythonコンソールに入力して実行する。

%run ~/py/test.py

Hello, world!