Chế độ của một tập dữ liệu là/là [các] thành viên xảy ra [các] thường xuyên nhất trong tập hợp. Nếu có hai thành viên xuất hiện thường xuyên nhất với cùng một số lần, thì dữ liệu có hai chế độ. Điều này được gọi là bimodal.
Nếu có nhiều hơn 2 chế độ, thì dữ liệu sẽ được gọi là đa phương thức. Nếu tất cả các thành viên trong tập dữ liệu xuất hiện cùng một số lần, thì tập dữ liệu hoàn toàn không có chế độ nào.
Các chế độ chức năng sau [] có thể hoạt động để tìm [các] chế độ trong một danh sách dữ liệu nhất định:
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"]
Output:
# 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]
Out[4]: There is NO mode in the data set
# For a list of strings/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']
Nếu chúng tôi không muốn nhập
# 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]
Out[4]: There is NO mode in the data set
# For a list of strings/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']
5 hoặc # 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]
Out[4]: There is NO mode in the data set
# For a list of strings/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']
6 để gọi bất kỳ chức năng nào từ các gói này, thì để có được đầu ra này, hàm # 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]
Out[4]: There is NO mode in the data set
# For a list of strings/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']
7 có thể được viết là: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"]
Trong hướng dẫn này, chúng tôi sẽ xem xét cách tính chế độ của một danh sách trong Python với sự trợ giúp của một số exmaples.
Chế độ là gì?
Chế độ là một thống kê mô tả được sử dụng như một thước đo xu hướng trung tâm của phân phối. Nó bằng với giá trị xảy ra thường xuyên nhất. Lưu ý rằng nó có thể cho một tập hợp các giá trị có nhiều hơn một chế độ. Chế độ cũng được sử dụng để áp đặt giá trị bị thiếu trong các biến phân loại.
Để tính toán chế độ của danh sách các giá trị -
- Đếm tần số của mỗi giá trị trong danh sách.
- Giá trị với tần số cao nhất là chế độ.
Ví dụ: tính toán chế độ của các giá trị sau -
Nếu chúng ta đếm được bao nhiêu lần mỗi giá trị xảy ra trong danh sách, bạn có thể thấy rằng 2 xảy ra ba lần, 5 lần xảy ra hai lần và 3, 4 và 6 xảy ra mỗi lần một lần. Từ đó, chúng ta có thể nói rằng chế độ của những con số này là 2.
Hãy cùng nhìn vào một ví dụ khác.
2 và 5 xảy ra hai lần và 1, 3, 4 và 6 xảy ra một lần. Ở đây, cả 2 và 5 đều là chế độ vì cả hai đều có tần suất xuất hiện cao nhất. Một phân phối với hai chế độ được gọi là phân phối lưỡng kim.
Để tính toán chế độ của một danh sách các giá trị trong Python, bạn có thể viết chức năng tùy chỉnh của riêng mình hoặc sử dụng các phương thức có sẵn trong các thư viện khác như
# 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]
Out[4]: There is NO mode in the data set
# For a list of strings/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']
8, # 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]
Out[4]: There is NO mode in the data set
# For a list of strings/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']
9, v.v. Hãy cùng xem xét các phương pháp này với sự trợ giúp của một số ví dụ.1. Từ đầu thực hiện chế độ trong Python
Chúng ta đã biết logic để tính toán chế độ. Bây giờ, hãy để thực hiện logic đó trong hàm Python tùy chỉnh.
def mode[ls]: # dictionary to keep count of each value counts = {} # iterate through the list for item in ls: if item in counts: counts[item] += 1 else: counts[item] = 1 # get the keys with the max counts return [key for key in counts.keys[] if counts[key] == max[counts.values[]]] # use the function on a list of values mode[[2,2,4,5,6,2,3,5]]
Output:
[2]
Ở đây, bạn có thể thấy rằng hàm tùy chỉnh cung cấp chế độ chính xác cho danh sách các giá trị được truyền. Lưu ý rằng hàm trả về một danh sách của tất cả các chế độ thay vì giá trị tỷ lệ.
Bây giờ, hãy để thông qua một danh sách các giá trị có hai chế độ.
# two values with max frequency mode[[2,2,4,5,6,1,3,5]]
Output:
[2, 5]
Bạn có thể thấy rằng nó trả về cả hai chế độ dưới dạng danh sách. Chúng ta có thể sửa đổi hàm để trả về giá trị tỷ lệ, ví dụ, chế độ nhỏ nhất hoặc chế độ lớn nhất tùy thuộc vào yêu cầu.
Lưu ý rằng việc triển khai trên có thể không phải là phiên bản tối ưu nhất. .
2. Sử dụng thư viện # 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]
Out[4]: There is NO mode in the data set
# For a list of strings/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']
9
# 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]
Out[4]: There is NO mode in the data set
# For a list of strings/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']
Bạn cũng có thể sử dụng thư viện tiêu chuẩn
# 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]
Out[4]: There is NO mode in the data set
# For a list of strings/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']
9 trong Python để có được chế độ của một danh sách các giá trị. Chuyển danh sách như một đối số cho hàm 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"]
4.import statistics # calculate the mode statistics.mode[[2,2,4,5,6,2,3,5]]
Output:
2
Chúng tôi nhận được giá trị tỷ lệ 2 làm chế độ chính xác.
Phương pháp này cung cấp một
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"]
5 nếu có nhiều hơn một chế độ có trong dữ liệu. Ví dụ -# calculate the mode statistics.mode[[2,2,4,5,6,1,3,5]]
Output:
# 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]
Out[4]: There is NO mode in the data set
# For a list of strings/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']
03. Sử dụng thư viện # 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]
Out[4]: There is NO mode in the data set
# For a list of strings/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']
8
# 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]
Out[4]: There is NO mode in the data set
# For a list of strings/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']
Bạn cũng có thể sử dụng chức năng
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"]
7 có sẵn trong mô -đun 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"]
8 để tính chế độ trong danh sách. Ví dụ -# 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]
Out[4]: There is NO mode in the data set
# For a list of strings/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']
1Output:
# 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]
Out[4]: There is NO mode in the data set
# For a list of strings/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']
2Chúng tôi nhận được kết quả chính xác.
Lưu ý rằng phương pháp này cung cấp chế độ nhỏ nhất nếu có nhiều chế độ có trong dữ liệu.
# 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]
Out[4]: There is NO mode in the data set
# For a list of strings/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']
3Đầu ra:
# 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]
Out[4]: There is NO mode in the data set
# For a list of strings/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']
4Dữ liệu thực sự có hai chế độ, 2 và 5, với cả hai xảy ra hai lần nhưng chúng tôi nhận được 2 là kết quả vì nó là loại nhỏ nhất trong số các chế độ.
Bạn có thể sử dụng các phương pháp tương tự như các phương pháp được mô tả trong hướng dẫn này để tính toán trung bình của một danh sách trong Python.
Đăng ký nhận bản tin của chúng tôi để biết thêm hướng dẫn và hướng dẫn thông tin. Chúng tôi không spam và bạn có thể từ chối bất cứ lúc nào.
We do not spam and you can opt out any time.
Piyush là một nhà khoa học dữ liệu đam mê sử dụng dữ liệu để hiểu mọi thứ tốt hơn và đưa ra quyết định sáng suốt. Trong quá khứ, anh ta làm việc như một nhà khoa học dữ liệu cho ZS và có bằng kỹ sư từ IIT Roorkee. Sở thích của anh ấy bao gồm xem cricket, đọc sách và làm việc trên các dự án phụ.
Xem tất cả các bài viết