ホームページ >バックエンド開発 >Python チュートリアル >NumPy は列の一意の値に基づいてデータを効率的にグループ化できますか?
NumPy は指定された列によってデータをグループ化できますか?
概要:
データのグループ化は多くのデータ分析シナリオにおいて重要な操作です。 Python の強力な数値ライブラリである NumPy は、配列を操作するためのさまざまな関数を提供しますが、専用のグループ化関数がありません。この記事では、専用関数を明示的に使用せずに NumPy でグループ化を実現する方法を説明します。
質問:
NumPy には配列をその配列によってグループ化する関数はありますか?提供された配列に示されている最初の列?
array([[ 1, 275], [ 1, 441], [ 1, 494], [ 1, 593], [ 2, 679], [ 2, 533], [ 2, 686], [ 3, 559], [ 3, 219], [ 3, 455], [ 4, 605], [ 4, 468], [ 4, 692], [ 4, 613]])
Expected出力:
array([[[275, 441, 494, 593]], [[679, 533, 686]], [[559, 219, 455]], [[605, 468, 692, 613]]], dtype=object)
答え:
NumPy は明示的に「グループ化」関数を提供しませんが、Eelco Hoogendoorn の手法にヒントを得た代替アプローチを提供します。図書館。このアプローチは、配列の最初の列が常に増加しているという前提に基づいています。そうでない場合は、
a = a[a[:, 0].argsort()]
を使用して最初の列で配列を並べ替える必要があります。最初の列の値が増加するという仮定を使用して、次のコードはグループ化操作を実行します。
np.split(a[:, 1], np.unique(a[:, 0], return_index=True)[1][1:])
このコードは、最初の列の一意の値に基づいて、配列要素を部分配列に効果的にグループ化します。各部分配列は、最初の列の値が同じであるすべての要素の 2 番目の列の値を含むグループを表します。
追加の考慮事項:
したがって、NumPy は、配列操作と並べ替えを利用してデータをグループ化する柔軟かつ効率的な方法を提供します。専用のグループ化関数がなくても機能します。
以上がNumPy は列の一意の値に基づいてデータを効率的にグループ化できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。