ホームページ > バックエンド開発 > Python チュートリアル > 専用関数を使わずに NumPy で GroupBy 機能を実現するにはどうすればよいですか?

専用関数を使わずに NumPy で GroupBy 機能を実現するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-11-26 04:38:13
オリジナル
237 人が閲覧しました

How Can I Achieve GroupBy Functionality in NumPy Without a Dedicated Function?

NumPy の GroupBy 機能

データのグループ化はデータ分析の一般的なタスクであり、特定の基準に基づいてデータを集計および整理できます。 NumPy は関数ごとに専用のグループをネイティブに提供しませんが、この機能を実現するにはいくつかのアプローチがあります。

1 つの方法では、np.split() 関数を np.unique() と組み合わせて使用​​します。 。このアプローチは、グループ化キーとして機能する配列の最初の列が常に増加しているという前提に基づいています。この列で配列をソートし、一意の値を取得すると、その後、np.split() を使用して配列をグループに分割できます。

たとえば、次の配列があるとします。

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]])
ログイン後にコピー

この配列を最初の列でグループ化するには、次のコードを使用できます:

a = a[a[:, 0].argsort()]
np.split(a[:,1], np.unique(a[:, 0], return_index=True)[1][1:])
ログイン後にコピー

これにより、目的のものが生成されます。出力:

array([[[275, 441, 494, 593]],
       [[679, 533, 686]],
       [[559, 219, 455]],
       [[605, 468, 692, 613]]], dtype=object)
ログイン後にコピー

このアプローチにはいくつかの利点があります。

  • 明示的なループの必要性が回避され、より効率的になります。
  • 結果リストは NumPy です。配列を使用することで、変換せずにさらに NumPy 操作を行うことができます。
  • 複雑さは O(n) (またはO(n log(n)) with sort).

NumPy 自体には関数ごとの特定のグループがない場合がありますが、上記のメソッドはデータに対してグループ化操作を実行する効果的な方法を提供し、効果的に整理して分析します。

以上が専用関数を使わずに NumPy で GroupBy 機能を実現するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート