NumPy 中的 Group by Function
NumPy 提供了多個用於陣列運算的函數,包括將元素分組的運算。其中一個操作是 groupby,它允許您根據指定的鍵對陣列中的元素進行分組。
特定問題
考慮以下數組 a:
a = 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 中的元素分組。在這種情況下,您期望輸出為:
array([[[275, 441, 494, 593]], [[679, 533, 686]], [[559, 219, 455]], [[605, 468, 692, 613]]], dtype=object)
解決方案
雖然 NumPy 中沒有直接的 groupby函數,但可以實現此目的使用以下方法:
# Sort the array by the first column a = a[a[:, 0].argsort()] # Find the unique values in the first column as keys keys = np.unique(a[:, 0]) # Create an array to hold the grouped elements grouped = [] # Iterate through the keys for key in keys: # Create a mask to select elements with the given key mask = (a[:, 0] == key) # Append the selected elements to the grouped array grouped.append(a[mask][:, 1])
此解決方案根據第一列有效地對數組中的元素進行分組,甚至儘管它沒有明確使用 groupby 函數。
以上是如何根據特定列將 NumPy 陣列元素分組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!