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
これくらいです!
皆さんも積極的に使っていきましょう。