Quantcast
Channel: 初心者タグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 21093

企業研究者のためのNumPyまとめ

$
0
0

はじめに

NumPyは、ベクトルや行列計算を高速で行うためのライブラリです。
ここでは、NumPyでよく使うメソッドなどについて解説します。
Python3系の使用を想定しています。

インポート

NumPyを使うには、まずライブラリを読み込む必要があります。
慣習的に、npとすることが多いです。

NumPy_1.py
importnumpyimportnumpyasnp

1次元配列

NumPyでは、リストのような配列を作ることができます。

NumPy_2.py
importnumpyasnpnp_arr_1=np.array([1,2,5])print(np_arr_1)print(type(np_arr_1))print(np_arr_1**2)np_arr_2=np.array([3,5,7])print(np_arr_1+np_arr_2)np_arr_3=np.arange(10)print(np_arr_3)np_arr_3[0:2]=100print(np_arr_3)

NumPyは要素同士の計算が簡単にできるのが特徴です。
NumPyを使わずに上記の処理を行おうとすると以下のようになります。

NumPy_3.py
arr_1=[1,2,5]fori,numinenumerate(arr_1):arr_1[i]=num**2print(arr_1)

NumPyの配列では、代入先の要素の値を更新すると、元の配列の値も更新されるので、注意が必要です。
元の配列が更新されないようにするには、copy()メソッドを使用します。

NumPy_4.py
importnumpyasnpnp_arr_1=np.array([1,2,5])np_arr_2=np_arr_1np_arr_2[1]=100print(np_arr_1)print(np_arr_2)np_arr_1=np.array([1,2,5])np_arr_2=np_arr_1.copy()np_arr_2[1]=100print(np_arr_1)print(np_arr_2)

ある条件を満たす要素のみを取り出すことも可能です。

NumPy_5.py
importnumpyasnpnp_arr_1=np.array([1,2,5])print(np_arr_1[np_arr_1%2==1])

NumPyでは「ユニバーサル関数」と呼ばれる、配列の各要素に対する演算結果を返す関数が用意されています。

NumPy_6.py
importnumpyasnpnp_arr_4=np.array([-1,2,-3])print(np.abs(np_arr_4))np_arr_5=np.array([1,9,25])print(np.sqrt(np_arr_5))

NumPyでは、乱数を発生させることもできます。

NumPy_7.py
importnumpyasnpnp_arr_6=np.random.randint(0,10,5)print(np_arr_6)np_arr_7=np.random.randint(5)print(np_arr_7)

importの部分を書き換えることで、より短く簡単に記述することができます。

Numpy_8.py
fromnumpy.randomimportrandintnp_arr_6=randint(0,10,5)print(np_arr_6)np_arr_7=randint(5)print(np_arr_7)

2次元配列

2次元配列に関するメソッドは以下のようになります。

NumPy_9.py
importnumpyasnpnp_arr_8=np.array([[1,2,3],[4,5,6]])print(np_arr_8)print(np_arr_8[1])print(np_arr_8[1,1])print(np_arr_8.sum())print(np_arr_8.sum(axis=0))# 列ごとに計算
print(np_arr_8.sum(axis=1))# 行ごとに計算
print(np_arr_8.shape)print(np_arr_8.reshape(3,2))print(np_arr_8.T)print(np.transpose(np_arr_8))print(np_arr_8.mean())# 平均
print(np.average(np_arr_8))# 平均
print(np.max(np_arr_8))# 最大値
print(np.min(np_arr_8))# 最小値
print(np.std(np_arr_8))# 標準偏差
print(np.var(np_arr_8))# 分散
print(np.argmax(np_arr_8))# 最大値の要素のインデックス番号
print(np.argmin(np_arr_8))# 最小値の要素のインデックス番号

まとめ

ここでは、NumPyでよく用いられるメソッドなどを紹介してきました。
マスターするには、実際に使ってみるのが一番の近道です。

参考資料・リンク

NumPy公式ページ


Viewing all articles
Browse latest Browse all 21093

Trending Articles