関数の機能:配列の要素を昇順に並べ替える
例1 : 1次元の配列の場合
>>> a = np.array([3, 1, 6, 5, 2])
>>> a.sort()
>>> a
array([1, 2, 3, 5, 6])
例2 : 2次元の配列の場合
>>> a = np.array([[7, 1, 6],
[4, 2, 3]])
>>> a.sort(axis=0)
>>> a
array([[4, 1, 3],
[7, 2, 6]])
>>> a = np.array([[7, 1, 6],
[4, 2, 3]])
>>> a.sort(axis=1)
>>> a
array([[1, 6, 7],
[2, 3, 4]])
例3 : 構造化された配列の場合
>>> dtype = [('index', int), ('x', float), ('y', float)]
>>> v = [(0, 5.8, 3.6),
(1, 7.5, 2.9),
(2, 2.7, 9.7),
(3, 5.8, 2.4),
(4, 1.3, 9.7)]
>>> a = np.array(v, dtype=dtype)
>>> a.sort(order='y')
>>> a
array([(3, 5.8, 2.4),
(1, 7.5, 2.9),
(0, 5.8, 3.6),
(2, 2.7, 9.7),
(4, 1.3, 9.7)],
dtype=[('index', '<i8'), ('x', '<f8'), ('y', '<f8')])
上の例では、'index','x','y'の3つの数値が1組になったものを、'y'の値で並べ替えています。 優先順位'x','y'の順に並べ替えたいなら、下記のように書きます。
>>> a.sort(order=['x','y'])
>>> a
array([(4, 1.3, 9.7),
(2, 2.7, 9.7),
(3, 5.8, 2.4),
(0, 5.8, 3.6),
(1, 7.5, 2.9)],
dtype=[('index', '<i8'), ('x', '<f8'), ('y', '<f8')])
関連項目 関数ndarray.argsortの使い方の例 関数ndarray.searchsortedの使い方の例