首頁 >後端開發 >Python教學 >如果沒有專用函數,如何在 NumPy 中實作 GroupBy 功能?

如果沒有專用函數,如何在 NumPy 中實作 GroupBy 功能?

Susan Sarandon
Susan Sarandon原創
2024-11-26 04:38:13239瀏覽

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

NumPy 中的GroupBy 功能

對數據進行分組是數據分析中的一項常見任務,允許您根據特定條件聚合和組織數據。雖然 NumPy 本身並沒有提供專用的分組功能,但您可以採取多種方法來實現此功能。

一種方法是將 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 sorting)。

雖然 NumPy 本身可能沒有特定的分組功能,但上述方法提供了對資料執行分組操作的有效方法,使您能夠有效地組織和分析它。

以上是如果沒有專用函數,如何在 NumPy 中實作 GroupBy 功能?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn