মোড একটি ডাটা সেটের / হয় সদস্য (গুলি) যে ঘটতে (গুলি) সবচেয়ে ঘন ঘন সেটে। যদি এমন দুটি সদস্য থাকে যা প্রায়শই একই সংখ্যার বারের সাথে উপস্থিত হয়, তবে ডেটাতে দুটি মোড রয়েছে। একে বলা হয় বিমোডাল ।
যদি 2 টিরও বেশি মোড থাকে তবে
ডেটাটিকে মাল্টিমোডাল বলা হবে । যদি ডেটা সেটের সমস্ত সদস্য একই সংখ্যক বার উপস্থিত হয়, তবে ডেটা সেটের
কোনও মোড নেই ।
নিম্নলিখিত ফাংশন প্রদত্ত তথ্যের তালিকাতে মোড (গুলি) সন্ধান modes()
করতে কাজ করতে পারে :
import numpy as np; import pandas as pd
def modes(arr):
df = pd.DataFrame(arr, columns=['Values'])
dat = pd.crosstab(df['Values'], columns=['Freq'])
if len(np.unique((dat['Freq']))) > 1:
mode = list(dat.index[np.array(dat['Freq'] == max(dat['Freq']))])
return mode
else:
print("There is NO mode in the data set")
আউটপুট:
# For a list of numbers in x as
In [1]: x = [2, 3, 4, 5, 7, 9, 8, 12, 2, 1, 1, 1, 3, 3, 2, 6, 12, 3, 7, 8, 9, 7, 12, 10, 10, 11, 12, 2]
In [2]: modes(x)
Out[2]: [2, 3, 12]
# For a list of repeated numbers in y as
In [3]: y = [2, 2, 3, 3, 4, 4, 10, 10]
In [4]: modes(y)
There is NO mode in the data set
# For a list of stings/characters in z as
In [5]: z = ['a', 'b', 'b', 'b', 'e', 'e', 'e', 'd', 'g', 'g', 'c', 'g', 'g', 'a', 'a', 'c', 'a']
In [6]: modes(z)
Out[6]: ['a', 'g']
আমরা যদি এই প্যাকেজগুলি থেকে আমদানি করতে numpy
বা pandas
কোনও ফাংশন কল করতে না চাই , তবে এই একই আউটপুটটি পেতে modes()
ফাংশনটি এইভাবে লেখা যেতে পারে:
def modes(arr):
cnt = []
for i in arr:
cnt.append(arr.count(i))
uniq_cnt = []
for i in cnt:
if i not in uniq_cnt:
uniq_cnt.append(i)
if len(uniq_cnt) > 1:
m = []
for i in list(range(len(cnt))):
if cnt[i] == max(uniq_cnt):
m.append(arr[i])
mode = []
for i in m:
if i not in mode:
mode.append(i)
return mode
else:
print("There is NO mode in the data set")