डेटा सेट का मोड सदस्य हैं जो सेट में सबसे अधिक बार होते हैं। यदि दो सदस्य हैं जो समान संख्या के साथ सबसे अधिक बार दिखाई देते हैं, तो डेटा में दो मोड होते हैं। इसे बिमोडल कहा जाता है ।
यदि 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")