Count frequencies of all elements in array in Python using collections module
Given an unsorted array of n integers which can contains n integers. Count frequency of all elements that are present in array. Examples:
Input : arr[] = [1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 4, 5, 5] Output : 1 -> 4 2 -> 4 3 -> 2 4 -> 1 5 -> 2
This problem can be solved in many ways, refer Count frequencies of all elements in array link. In Python, we can quickly solve this problem in using Collections module.
Implementation:
Python
# Function to count frequency of each element import collections # it returns a dictionary data structure whose # keys are array elements and values are their # corresponding frequencies {1: 4, 2: 4, 3: 2, # 5: 2, 4: 1} def CountFrequency(arr): return collections.Counter(arr) # Driver function if __name__ = = "__main__" : arr = [ 1 , 1 , 1 , 1 , 2 , 2 , 2 , 2 , 3 , 3 , 4 , 5 , 5 ] freq = CountFrequency(arr) # iterate dictionary named as freq to print # count of each element for (key, value) in freq.items(): print (key, " -> " , value) |
Output
(1, ' -> ', 4) (2, ' -> ', 4) (3, ' -> ', 2) (4, ' -> ', 1) (5, ' -> ', 2)
The time complexity of this function is O(n), where n is the length of the input array.
The auxiliary space required by this function is O(k), where k is the number of unique elements in the input array.
Related Article : Counting the frequencies in a list using dictionary in Python