NumPy-アレイを使ったデータ処理-
- 作者: Bill Lubanovic,斎藤康毅,長尾高弘
- 出版社/メーカー: オライリージャパン
- 発売日: 2015/12/01
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (3件) を見る
【前提条件】
OS:Windows 10 64-bit, version 1607
Anaconda 4.4.0(Python 3.6 version 64-bit)インストール
NumPyのインストール
【手順概要】
1.コマンドプロンプトでIPython Notebookを起動します。
2.アレイを使ったデータ処理
【手順】
1.コマンドプロンプトでIPython Notebookを起動します。
ipython notebook
2.アレイを使ったデータ処理
2.1.numpyをインポートします。
import numpy as np
2.2.グラフ描画用のmatplotlib.pyplotをインポートします。ノート上にグラフ表示するために%matplotlib inlineを記述します。
import matplotlib.pyplot as plt %matplotlib inline
2.3.点を配列で表現します。
points=np.arange(-5,5,0.01) dx,dy=np.meshgrid(points,points) dx dy
2.4.数値だけでは分かりづらいのでグラフを描画してみます。
plt.imshow(dx) plt.imshow(dy)
2.5.もう少し複雑なグラフを描画してみます。
z=(np.sin(dx)+np.sin(dy)) plt.imshow(z)
2.6.タイトルやカラーバーをつけることも出来ます。
plt.imshow(z)
plt.colorbar()
plt.title('Plot for sin(x)+sin(y)')
2.7.配列AとBを比較し、conditionがTrueならばAをFalseならばBの値を返しています。
A=np.array([1,2,3,4]) B=np.array([1000,2000,3000,4000]) condition=np.array([True,True,False,False]) answer=[(a if cond else b) for a,b,cond in zip(A,B,condition)] answer Out:[1, 2, 3000, 4000]
2.8.同様のことがwhereを使っても出来ます。
answer2=np.where(condition,A,B) answer2 Out:array([ 1, 2, 3000, 4000])
2.9.whereを使って配列の要素が0より小の場合は0、その他の場合は要素の値を表示するようにも出来ます。
arr = randn(5,5) np.where(arr < 0,0,arr) Out:array([[ 0. , 0. , 0.93383019, 0. , 0.32984702], [ 0.15788724, 0.8993592 , 0. , 0. , 0. ], [ 0. , 0. , 0. , 0. , 0. ], [ 0.67750279, 0. , 0. , 0.25983106, 1.09274892], [ 1.76261425, 0. , 0. , 0. , 0.91529107]])
2.10.行列の要素の和を求めるsum、平均を求めるmean、標準偏差を求めるstd、分散を求めるvarなどがあります。
arr=np.array([[1,2,3,],[4,5,6],[7,8,9]]) arr.sum() Out:45 arr.mean() Out:5.0 arr.std() Out:2.5819888974716112 arr.var() Out:6.666666666666667
2.11.any(少なくとも一つ)とall(全て)で真偽の判定も出来ます。
bool_arr=np.array([True,False,True]) bool_arr.any() bool_arr.all()
2.12.sortで並び替えも出来ます。
arr=randn(5) arr Out:array([ 0.55264177, -0.33466689, -2.07526054, 1.4271714 , -0.81139511]) arr.sort() arr Out:array([-2.07526054, -0.81139511, -0.33466689, 0.55264177, 1.4271714 ])
2.13.uniqueで重複する要素を除去出来ます。in1dで指定した配列(countries)に入力した要素があるか真偽判定してくれます。
countries=np.array(['France','Japan','USA','Russia','USA','Mexico','Japan']) np.unique(countries) Out:array(['France', 'Japan', 'Mexico', 'Russia', 'USA'], dtype='<U6') np.in1d(['France','USA','Swaden'],countries) Out:array([ True, True, False], dtype=bool)
Pythonではじめる機械学習 ―scikit-learnで学ぶ特徴量エンジニアリングと機械学習の基礎
- 作者: Andreas C. Muller,Sarah Guido,中田秀基
- 出版社/メーカー: オライリージャパン
- 発売日: 2017/05/25
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
参考:
udemy 実践Pythonデータサイエンス