(59) numpyでsort

投稿者: | 2014年9月5日

2,001 views

この記事は最終更新から 1816日 が経過しています。

5行3列の乱数配列aを作成する。

>>> import numpy as np
>>> a = np.random.rand(5,3)
>>> a
array([[ 0.55096361,  0.12996364,  0.37222312],
       [ 0.74124504,  0.37193397,  0.13887862],
       [ 0.41474143,  0.23832064,  0.9245167 ],
       [ 0.41874493,  0.23164232,  0.10248007],
       [ 0.62351702,  0.2568594 ,  0.86498964]])

aを列方向(axis=1)でソートした配列bを作成する。

>>> b = np.sort(a, axis=1)
>>> b
array([[ 0.12996364,  0.37222312,  0.55096361],
       [ 0.13887862,  0.37193397,  0.74124504],
       [ 0.23832064,  0.41474143,  0.9245167 ],
       [ 0.10248007,  0.23164232,  0.41874493],
       [ 0.2568594 ,  0.62351702,  0.86498964]])

引数axisを指定しない場合、列方向のソートになるようだ。

>>> c = np.sort(a)
>>> c
array([[ 0.12996364,  0.37222312,  0.55096361],
       [ 0.13887862,  0.37193397,  0.74124504],
       [ 0.23832064,  0.41474143,  0.9245167 ],
       [ 0.10248007,  0.23164232,  0.41874493],
       [ 0.2568594 ,  0.62351702,  0.86498964]])
>>> b-c
array([[ 0.,  0.,  0.],
       [ 0.,  0.,  0.],
       [ 0.,  0.,  0.],
       [ 0.,  0.,  0.],
       [ 0.,  0.,  0.]])

aを行方向(axis=0)でソートした配列dを作成する。

>>> d = np.sort(a, axis=0)
>>> d
array([[ 0.41474143,  0.12996364,  0.10248007],
       [ 0.41874493,  0.23164232,  0.13887862],
       [ 0.55096361,  0.23832064,  0.37222312],
       [ 0.62351702,  0.2568594 ,  0.86498964],
       [ 0.74124504,  0.37193397,  0.9245167 ]])

配列オブジェクトのメソッドとして実行することもできる。

>>> a.sort(axis=0)
>>> d-a
array([[ 0.,  0.,  0.],
       [ 0.,  0.,  0.],
       [ 0.,  0.,  0.],
       [ 0.,  0.,  0.],
       [ 0.,  0.,  0.]])

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です