私はnumpy配列(3628621要素の長いベクトル)の一意の要素のインデックスを取得しようとしています。私はユニークな要素を選択しようとすると、私はまだ重複を発見していますので しかし、私は間違って何かをする必要があり、:numpy.uniqueは一意でない出力を出力しますか?
Vector
Out[165]: array([712450, 714390, 718560, ..., 384390, 992041, 94852])
Loc = np.where(np.unique(Vector)) # Find indices of unique elements
Vector_New = Vector[Loc] # Create new vector with all unique elements
np.where(Vector_New == 173020) # See how often/where '173020' exists
Out[166]: (array([ 7098, 11581], dtype=int64),)
だから私はことを期待しますが、整数「173020」は、新しいベクトルに二回、まだ存在していますすべての要素は一意でなければなりません。新しいベクトルは11594要素長です。
ありがとうございました!
よろしく、 Timen
'np.where(np.unique(Vector))'は「一意の要素のインデックスを検索」しません。 – user2357112
@ user2357112が意味するのは、あなたが本当に 'Vector_New = np.unique(Vector)'をしたいということです。あなたがやっていることは、 'Loc = np.arange(np.unique(Vector).size)'と同じです。代わりに 'Vector'にインデックスを付けると達成しようとしているところには近づきません。 –
おかげさまで、私はなぜそれがそうだと思ったのか分かりません。ご迷惑おかけして申し訳ありません! – Timen123