深層学習とその他

機械学習したいマン

numpyのよく使う関数について

アドベントカレンダー二日目です!
みなさんnumpyつかってますか?使ってなければめちゃめちゃ使っていきましょう!


今日は自分がよく使うnumpyのメソッドについて書いていきます!
まずはimportからします。

import numpy as np
  • array

numpy配列を作成する。

>>> np.array([2,3])
array([2, 3])
  • arange

numpyの等差数列を作成する。
引数は開始位置、終了位置、差。

>>> import numpy as np
>>> np.arange(10)
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

>>> np.arange(2,10)
array([2, 3, 4, 5, 6, 7, 8, 9])

>>> np.arange(2,10,2)
array([2, 4, 6, 8])
  • ndim

numpy配列の次元数を表示する。

>>> ary = np.arange(9)
>>> ary.ndim
1
>>> ary = ary.reshape(3,3)
>>> ary
array([[0, 1, 2],
       [3, 4, 5],
       [6, 7, 8]])
>>> ary.ndim
2
  • shape

numpy配列の大きさを返す。

>>> ary = np.array([[10,1],[2,3]])
>>> ary.shape
(2, 2)
  • reshape

numpy配列の形状を変換する。

>>> ary = np.arange(9)
>>> ary.shape
(9,)
>>> ary.reshape(3,3)
array([[0, 1, 2],
       [3, 4, 5],
       [6, 7, 8]])
>>> ary.reshape(3,3).shape
(3, 3)
  • concatenate

numpy配列の結合を行う。

>>> ary1 = np.arange(1,4)
>>> ary2 = np.arange(4,7)
>>> np.concatenate((ary1,ary2))
array([1, 2, 3, 4, 5, 6])
  • exp

入力された配列を指数関数を計算し返す。

>>> np.exp(1)
2.7182818284590451
>>> np.exp(np.arange(10))
array([  1.00000000e+00,   2.71828183e+00,   7.38905610e+00,
         2.00855369e+01,   5.45981500e+01,   1.48413159e+02,
         4.03428793e+02,   1.09663316e+03,   2.98095799e+03,
         8.10308393e+03])
  • log

logを計算して値を返す。

>>> np.log(2)
0.69314718055994529
>>> np.log(np.arange(3,7))
array([ 1.09861229,  1.38629436,  1.60943791,  1.79175947])
  • dot

numpy配列の内積を返す。ゼロディープでも使われてるやつ。

>>> x = np.arange(0,1,0.1)
>>> w = np.arange(0,0.5,0.05)
>>> np.dot(x,w)
1.4250000000000003
  • ceil

値を切り上げて返す。

>>> ary = np.arange(0,3,0.0001)
>>> ary
array([  0.00000000e+00,   1.00000000e-04,   2.00000000e-04, ...,
         2.99970000e+00,   2.99980000e+00,   2.99990000e+00])
>>> np.ceil(ary)
array([ 0.,  1.,  1., ...,  3.,  3.,  3.])
  • max

与えられた配列から最大の値を返す。

>>> ary = np.arange(9)
>>> ary.max()
8
  • min

与えられた配列から最小の値を返す。

>>> ary = np.arange(9)
>>> ary.min()
0
  • mean

与えられた配列の平均値を返す。

>>> ary = np.arange(9)
>>> ary.mean()
4.0
  • tolist

numpy配列をlistに変換する。

>>> ary = np.arange(9)
>>> type(ary)
<class 'numpy.ndarray'>
>>> type(ary.tolist())
<class 'list'>
  • savetxt

配列をファイルで保存する。

>>> ary = np.arange(9)
>>> np.savetxt('test.out',ary)
>>>
  • loadtxt

ファイルから配列を読み込む。

>>> ary = np.loadtxt('test.out')
>>> ary
array([ 0.,  1.,  2.,  3.,  4.,  5.,  6.,  7.,  8.])
  • random.rand

指定されたshapeの乱数を生成する。

>>> np.random.rand(10)
array([ 0.44287235,  0.21692152,  0.84455927,  0.54022887,  0.52577192,
        0.9950084 ,  0.67096636,  0.98974568,  0.13367928,  0.06666172])
>>> np.random.rand(2,4)
array([[ 0.00915183,  0.46581703,  0.94042928,  0.68478671],
       [ 0.86354656,  0.18085582,  0.35303269,  0.75925584]])
  • argmax

配列の最大値のindexを返す。

>>> ary = np.random.rand(10)
>>> ary
array([ 0.55867085,  0.8495954 ,  0.11821661,  0.54879808,  0.66047148,
        0.94979863,  0.68124201,  0.3366241 ,  0.78051136,  0.46966003])
>>> np.argmax(ary)
5
  • argmin

配列の最小値のindexを返す。

>>> ary = np.random.rand(10)
>>> ary
array([ 0.24730975,  0.21440767,  0.45433659,  0.70008046,  0.1456813 ,
        0.71550809,  0.07497271,  0.20736947,  0.98423264,  0.66670651])
>>> np.argmin(ary)
6

これくらいです!
皆さんも積極的に使っていきましょう。