Python numpy.unique() 関数

Suraj Joshi 2023年1月30日
  1. numpy.unique() の構文
  2. コード例:numpy.unique() メソッド
  3. コード例:numpy.unique() メソッドで return_index=True を設定する
  4. コード例:numpy.unique() メソッドで return_counts=True を設定する
  5. コード例:numpy.unique() メソッドで return_inverse=True を設定する
  6. コード例:numpy.unique() メソッドで axis パラメータを設定する
Python numpy.unique() 関数

Python Numpy numpy.unique() 関数は与えられた NumPy 配列に含まれる全ての一意な値を取得し、それらの一意な値をソートします。

numpy.unique() の構文

numpy.unique(
    ar, return_index=False, return_inverse=False, return_counts=False, axis=None
)

パラメータ

ar 配列に変換できる配列またはオブジェクト
return_index 論理値。True の場合、各一意な値の最初の出現位置のインデックスの配列を返します。
return_inverse 論理値。True の場合、入力配列の再構築に使用できる一意の配列のインデックスを返します。
return_counts 論理値。True の場合、各値のカウントの配列を返します。
axis ユニークな行(axis=0)または列(axis=1)を見つけます。デフォルトでは、一意の要素は平坦化された配列から取得されます。

戻り値

配列の一意な値をソートして返します。

return_index=True ならば、各一意な値の最初に出現したインデックスの配列を返します。

return_count=True ならば、入力配列に含まれる各一意な値のカウントの配列を返します。

return_inverse=True の場合は、入力配列の再構築に利用できる一意な配列のインデックスを返します。

コード例:numpy.unique() メソッド

import numpy as np

a=np.array([[2,3,4],
            [5,4,7],
           [4,2,3]])

unique_array=np.unique(a)

print(unique_array)

出力:

[2 3 4 5 7]

入力配列を平坦化した後、ソートされた一意の値を返します。

配列を平坦化するということは、与えられた配列を 1 次元配列に変換するために、すべての行を次々に配置することを意味します。

コード例:numpy.unique() メソッドで return_index=True を設定する

import numpy as np

a=np.array([[2,3,4],
            [5,4,7],
           [4,2,3]])

unique_array=np.unique(a,return_index=True)

print(unique_array)

出力:

(array([2, 3, 4, 5, 7]), array([0, 1, 2, 3, 5]))

与えられた平坦化された入力配列の中でソートされた一意の値の配列のタプルと、各一意の値の最初の出現のインデックスの配列を与えます。

コード例:numpy.unique() メソッドで return_counts=True を設定する

import numpy as np

a=np.array([[2,3,4],
            [5,4,7],
           [4,2,3]])

unique_array=np.unique(a,return_counts=True)

print(unique_array)

出力:

(array([2, 3, 4, 5, 7]), array([2, 2, 3, 1, 1]))

これは、与えられた平坦化された入力配列の中のソートされた一意の値の配列と、入力配列の中の各一意の値のカウントの配列のタプルを与えます。

コード例:numpy.unique() メソッドで return_inverse=True を設定する

import numpy as np

a=np.array([[2,3,4],
            [5,4,7],
           [4,2,3]])

unique_array=np.unique(a,return_inverse=True)

print(unique_array)

出力:

(array([2, 3, 4, 5, 7]), array([0, 1, 2, 3, 2, 4, 2, 0, 1]))

与えられた平坦化された入力配列の中でソートされた一意の値の配列と、一意の配列のインデックスの配列のタプルを与えます。

ここでは、2 は平坦化された配列の最初の位置と最後の 2 番目の位置に存在します。同様に、どの値がどの位置にあるかを調べることができます。

コード例:numpy.unique() メソッドで axis パラメータを設定する

ユニークな行の検索

import numpy as np

a=np.array([[2,3,2],
            [2,3,2],
           [4,2,3]])

unique_array=np.unique(a,axis=0)

print(unique_array)

出力:

[[2 3 2]
 [4 2 3]]

入力配列内のすべてのユニークな行を出力します。

一意な列の検索

import numpy as np

a=np.array([[2,3,2],
            [2,3,2],
           [3,2,3]])

unique_array=np.unique(a,axis=1)

print(unique_array)

出力:

[[2 3]
 [2 3]
 [3 2]]

入力配列に含まれるすべての一意の列を出力します。

著者: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn