導入
np.unique
NumPy ライブラリ内の関数で、配列から一意の値を取得するために使用され、これらの一意の値に関する情報を返すことができます。np.unique
機能の詳細な紹介は次のとおりです。
文法:
unique_values = np.unique(arr, return_index=False, return_inverse=False, return_counts=False, axis=None)
arr
: 一意の値が抽出される入力配列。return_index
: オプションのパラメーター。 に設定すると、True
入力配列内で最初に出現した一意の値のインデックスを含むインデックス配列を返します。デフォルトは ですFalse
。return_inverse
: オプションのパラメーター。 に設定すると、True
元の配列の各要素のインデックスを含む整数配列を一意の値の配列に返します。これを使用すると、一意の値の配列を元の配列に復元できます。デフォルトは ですFalse
。return_counts
: オプションのパラメーター。 に設定すると、True
入力配列内で各一意の値が出現する回数を含む整数配列を返します。デフォルトは ですFalse
。axis
: どの軸で一意の値を検索するかを指定するオプションのパラメータ。指定しない場合のデフォルトは、None
配列全体で一意の値を見つけることを意味します。
戻り値:
np.unique
この関数は、一意の値を含む NumPy 配列を返します。パラメータセットに応じて、インデックス配列、逆インデックス配列、カウント配列などの 1 つ以上の追加配列を返すこともあります。
例:
import numpy as np
arr = np.array([3, 1, 2, 2, 3, 1, 4, 5, 5])
# 获取唯一值数组
unique_values = np.unique(arr)
# 输出: array([1, 2, 3, 4, 5])
# 获取唯一值的索引数组
unique_indices = np.unique(arr, return_index=True)[1]
# 输出: array([1, 2, 0, 6, 7], dtype=int64)
# 获取逆向索引数组,用于还原原始数组
inverse_indices = np.unique(arr, return_inverse=True)[1]
# 输出: array([2, 0, 1, 1, 2, 0, 3, 4, 4], dtype=int64)
# 获取唯一值的出现次数数组
value_counts = np.unique(arr, return_counts=True)[1]
# 输出: array([2, 2, 2, 1, 2], dtype=int64)
上記の例では、np.unique
関数は一意の値を取得するために使用されており、オプションでインデックス、逆インデックス、および出現数を返すことができ、これらの情報はさまざまなデータ処理および分析タスクで使用できます。
補足[1]
このコードの目的は、配列内の各一意の値の出現数をvalue_counts = np.unique(arr, return_counts=True)[1]
数え、その結果をという名前の変数に格納することです。arr
value_counts
このコードの各部分を説明しましょう。
-
np.unique(arr, return_counts=True)
: この部分は NumPynp.unique
関数を呼び出し、パラメータを渡しますreturn_counts=True
。これは、関数が一意の値を含む配列と、各一意の値の出現数を含む配列を返すことを意味します。 -
[1]
: この部分は、関数によって返された結果から 2 番目の要素を抽出します。Python では、リストと配列のインデックス付けは 0 から始まるため、[1]
結果の 2 番目の要素 (出現回数を含む配列) を取得することを意味します。
したがって、最終結果は、array 内の各一意の値の出現数を含む NumPy 配列value_counts
になります。arr
たとえば、 がarr
の場合[3, 1, 2, 2, 3, 1, 4, 5, 5]
、 となるvalue_counts
可能性があります[2, 2, 2, 1, 2]
。これは、数字 1 が 2 回、数字 2 が 2 回、数字 3 が 2 回、数字 4 が 1 回、数字 5 が 2 回出現することを示します。この情報は、統計やデータ内の値の頻度の分析に役立ちます。