Pythonでは、配列のユニークな要素を取得するためにいくつかの方法があります。ここでは、その中でも特に便利なnumpy.unique()
関数とset()
関数について説明します。
numpy.unique()
numpy.unique()
は、配列から重複要素を削除してユニークな要素だけで構成される配列を返します。この関数はPythonのset()
に相当します。
import numpy as np
# 配列xを定義
x = np.array([0, 5, 1, 3, 5, 0, 2])
# xの重複要素を取り除く
a = np.unique(x)
print(a) # [0 1 2 3 5]
また、return_index=True
を設定すると、ユニーク配列に加えて、各要素の抽出位置(インデクス)を示す配列も返します。
# ユニーク配列と、抽出要素のインデクスを取得
b = np.unique(x, return_index=True)
print(b) # (array([0, 1, 2, 3, 5]), array([0, 2, 6, 3, 1], dtype=int64))
set()
set()
はPythonの組み込み関数で、リストやタプルなどのイテラブルから重複要素を削除したセット(集合)を作成します。ただし、set()
は元の順序を保持しないため、順序を保持したままユニークな要素を取得したい場合は、more_itertools.unique_everseen()
を使用します。
from more_itertools import unique_everseen
# 配列datを定義
dat = [3, 2, 1, 5, 1, 2]
# datの重複要素を取り除く
unique_dat = list(unique_everseen(dat))
print(unique_dat) # [3, 2, 1, 5]
以上、Pythonで配列のユニークな要素を取得する方法について説明しました。これらの方法を活用して、データ分析や処理に役立ててください。