同じ長さの次の2つの配列があります。私の目標は、配列Bを配列Aで定義されたグループに分割することです。したがって、最終的に3つの配列または配列のリストが必要になります。配列の最終リストは、配列Bの次の行で構成されている必要があります。
順序は実際には関係ありません。
A = array([[-1],
[ 1],
[ 0],
[ 0],
[ 1]])
B = array([[ 624.5 , 548. ],
[ 912.8201, 564.3444],
[1564.5 , 764. ],
[1463.4163, 785.9251],
[1698.0757, 846.6306]])
この問題は、dbscanクラスタリング機能を使用して発生しました。A配列は、配列Bのポイントのクラスター(0、1)を記述します。値-1は、ポイントを外れ値として宣言します。(使用される値は正確ではありません)。私の目標は、見つかった各クラスターのコンパクトさを計算することです...
numpy_indexedパッケージ(免責事項:私はその作者)は念頭に置いての使用例これらのタイプで設計されました。
import numpy_indexed as npi
C = npi.group_by(A).split(B)
各グループのコンパクトさの意味がわかりません。ただし、分割して後続の計算を実行するよりも、通常、グループ全体の削減を直接計算する方が効率的です。これにより、グループ化オブジェクトを再利用して効率を高めることができます。
groups = npi.group_by(A)
mean = groups.mean(B)
std = groups.std(B)
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加