如何在 NumPy 陣列中計算唯一值的頻率?
分析 NumPy 陣列中唯一值的頻率是資料分析中的一項常見任務。它提供了對元素分佈和出現情況的有價值的見解,從而能夠有效地探索和預處理資料。在本文中,我們將探討各種方法來計算 NumPy 陣列中唯一值的頻率。透過利用內建的 NumPy 函式和外部庫(如 pandas 和 collections),我們將指導您逐步實現這些技術。透過本綜合指南,您將獲得準確分析和提取 NumPy 陣列中有意義的資訊所需的知識。
方法 1:使用 np.unique() 函式
NumPy 提供了 np.unique() 函式,該函式返回陣列的排序唯一元素。透過指定 return_counts=True 引數,它還會返回每個唯一元素的計數。讓我們看看如何使用此函式來計算 NumPy 陣列中唯一值的頻率
import numpy as np
# Create a NumPy array
arr = np.array([1, 2, 3, 2, 4, 1, 3, 4, 4, 4])
# Get the unique values and their counts
unique_values, counts = np.unique(arr, return_counts=True)
# Print the results
for value, count in zip(unique_values, counts):
print(f"{value} occurs {count} times")
輸出
1 occurs 2 times 2 occurs 2 times 3 occurs 2 times 4 occurs 4 times
透過使用 np.unique() 函式,我們獲得了兩個陣列:unique_values 包含唯一元素,counts 包含相應的頻率。然後,我們可以使用 zip() 函式同時遍歷這些陣列並列印結果。
方法 2:使用 collections.Counter() 函式
計算 NumPy 陣列中唯一值頻率的另一種方法涉及使用 collections.Counter() 函式。此函式是 Python 標準庫的一部分,並提供了一種有效的方法來計算集合中元素的出現次數。以下是如何使用此函式的示例
import numpy as np
from collections import Counter
# Create a NumPy array
arr = np.array([1, 2, 3, 2, 4, 1, 3, 4, 4, 4])
# Count the frequency of unique values
counts = Counter(arr)
# Print the results
for value, count in counts.items():
print(f"{value} occurs {count} times")
輸出
1 occurs 2 times 2 occurs 2 times 3 occurs 2 times 4 occurs 4 times
當應用 Counter(arr) 時,NumPy 陣列被轉換為類似字典的物件,其中鍵表示唯一值,值表示相應的頻率。然後,在遍歷 Counter 物件的內容後,可以列印結果。
方法 3:使用 np.bincount() 函式
我們可以使用 np.bincount() 函式來計算非負整數 NumPy 陣列中不同值的頻率。此函式建立一個新陣列並計算原始陣列中每個非負整數的例項。此新陣列中的索引代表不同的值,並且伴隨的項表示其頻率。以下是如何應用此策略的說明
import numpy as np
# Create a NumPy array
arr = np.array([1, 2, 3, 2, 4, 1, 3, 4, 4, 4])
# Get the frequency of unique values
counts = np.bincount(arr)
# Print the results
for value, count in enumerate(counts):
if count > 0:
print(f"{value} occurs {count} times")
輸出
1 occurs 2 times 2 occurs 2 times 3 occurs 2 times 4 occurs 4 times
在此方法中,我們將 np.bincount() 函式應用於 NumPy 陣列。結果陣列 counts 包含陣列中存在的每個非負整數的頻率。然後,我們可以使用 enumerate() 函式遍歷 counts 陣列的索引和相應元素,並列印計數大於零的值。
方法 4:使用 pandas.value_counts() 函式
如果您已安裝 pandas 庫,則可以使用其 value_counts() 函式來計算 NumPy 陣列中唯一值的頻率。此函式返回一個 Series 物件,其中包含唯一值作為索引,以及它們相應的頻率作為值。以下是一個示例
import numpy as np
import pandas as pd
# Create a NumPy array
arr = np.array([1, 2, 3, 2, 4, 1, 3, 4, 4, 4])
# Convert the array to Series
series = pd.Series(arr)
# Get the frequency of unique values
counts = series.value_counts()
# Print the results
for value, count in counts.items():
print(f"{value} occurs {count} times")
輸出
4 occurs 4 times 1 occurs 2 times 3 occurs 2 times 2 occurs 2 times
透過將 NumPy 陣列轉換為 pandas Series,我們可以使用 value_counts() 函式建立一個包含唯一值及其相應頻率的 Series 物件。在遍歷 Series 物件的專案後,可以列印結果。
結論
在本文中,我們介紹了各種計算 NumPy 陣列中唯一值頻率的方法,例如 np.unique()、collections.Counter()、np.bincount() 和 pandas.value_counts()。根據您的特定需求和可用庫,這些方法提供了不同的優勢。透過應用這些技術,您可以有效地從資料中獲得見解並高效地進行有意義的分析。
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP