2016-11-07 9 views
1

次のコードスニペットを使用して一意の配列のリストを取得していますが、奇妙な方法でリストを並べ替えます。 uniquecoordsは毎回同じ順序になるように束縛されているのですか、それともランダムな要因がありますか?numpyは常に同じですか?

for c in coordiantes: 
    coords.extend(c) 
a = np.array(coords) 
uniquecoords = np.unique(
    a.view(
     np.dtype((np.void, a.dtype.itemsize*a.shape[1]))) 
    ).view(a.dtype).reshape(-1, a.shape[1]) 

答えて

1

doc of numpy.unique()によると、この関数は「配列のソートされたユニークな要素を返します。」。したがって、順序は常に同じにする必要があります。あなたは元の順序を維持したい場合は、あなたが行うことができます

_, idx = np.unique(your_array_of_views, return_index=True) 

uniquecoords = a[idx] 
関連する問題