The sky is the limit

ハイブリッドアプリ開発、PWAなど効率の良いiOSアプリ、Androidアプリ開発の情報を共有したい。アプリ開発は楽しい。【PWA、AngularJS、Monaca、Cordova、OnsenUI】

【人工知能のつくりかた】Numpyを学ぶ【Python/Numpy】

【人工知能のつくりかた】Numpyを学ぶ【Python/Numpy】

f:id:duo-taro100:20160218004611p:plain

テンソルとブロードキャスト

Numpyといえばnumpy.array

以下のファイルを作成(pythonインタプリタでの実行でも大丈夫)

■numpy.py

# import numpy
import numpy as np

# create numpay array
x = np.array([1,2,4,5,6,7,8,12,30])
y = np.array([1,2,4,5,6,7,8,12,30])

# tensor
w = np.array([[1,4],[5,13]])
z = np.array([[0,1],[10,10]])

# 1
print(x)

# 2
print(x[x>=8])

# 3
print(x[x%2 == 0])

# 4
print(x + y)

# 5
print(w + z)

# 6
print(w * 10)

# 7 
print(w[0][1])

ファイル作成後に、実行

$ python numpy.py

f:id:duo-taro100:20160218005810j:plain

■実行結果

[ 1 2 4 5 6 7 8 12 30]

[ 8 12 30]

[ 2 4 6 8 12 30]

[ 2 4 8 10 12 14 16 24 60]

[[ 1 5]
[15 23]]

[[ 10 40]
[ 50 130]]

4


■解説

①print(x)
全部表示

[ 1 2 4 5 6 7 8 12 30]

②print(x[x>=8])
8以上の値だけ表示

[ 8 12 30]

③print(x[x%2 == 0])
偶数だけ表示

[ 2 4 6 8 12 30]

④print(x + y)
Numpy配列同士の足し算。
各要素同士で足し算してくれる。

[ 2 4 8 10 12 14 16 24 60]

⑤print(w + z)
wとzはN次元配列でtensor(テンソル)と呼ばれる。
tensorFlowのtensorはこのこと。
テンソルの場合も各要素同士での足し算が可能。

[[ 1 5]
[15 23]]

⑥print(w * 10)
テンソルと数値の掛け算。
テンソルの各要素に数値が掛け算された結果が出力された。
ブロードキャストっていう機能。

[[ 10 40]
[ 50 130]]

⑦print(w[0][1])
テンソルへのアクセス。
まず「w」は

[[1 4]
[5 13]]

だから、w[0]とした時に

[1 4] ( = sとする)

が取得できる。sに対して2つめの要素を取得しにくので

s[1] = [1 4][1] = 4

となる。

4

今回はここまで。
Numpyの基本を扱った。

pythonは2.7を使ったけど、3系にしたい。
今後3系をインストールして、pythonのバージョン管理を

qiita.com


ここを参考に環境構築する予定。