Open In App

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:




# 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  

Article Tags :