Hướng dẫn mode of a list python - chế độ của một danh sách python

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ì?

Hướng dẫn mode of a list python - chế độ của một danh sách python

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ị -

  1. Đếm tần số của mỗi giá trị trong danh sách.
  2. 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 -

Hướng dẫn mode of a list python - chế độ của một danh sách python

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.

Hướng dẫn mode of a list python - chế độ của một danh sách python

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

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']
0

3. 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

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']
1

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']
2

Chú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']
4

Dữ 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

Làm thế nào để bạn tìm thấy chế độ của một danh sách trong Python?

Cách tìm chế độ trong danh sách bằng Python..
Nhập thư viện bộ sưu tập ..
Xác định chức năng, find_mode, lấy một danh sách các số làm đầu vào ..
Xác định biến, dữ liệu, đếm sự xuất hiện của từng phần tử trong danh sách ..
Xác định biến, data_list, chuyển đổi dữ liệu thành từ điển ..

Chế độ trong danh sách là gì?

Chế độ là giá trị xuất hiện thường xuyên nhất trong tập dữ liệu.Một tập hợp dữ liệu có thể có một chế độ, nhiều hơn một chế độ hoặc không có chế độ nào cả.Các biện pháp phổ biến khác về xu hướng trung tâm bao gồm giá trị trung bình, hoặc trung bình của một tập hợp và trung bình, giá trị trung bình trong một tập hợp.the value that appears most frequently in a data set. A set of data may have one mode, more than one mode, or no mode at all. Other popular measures of central tendency include the mean, or the average of a set, and the median, the middle value in a set.

Chế độ () làm gì trong Python?

Phương thức MODE () Tính toán chế độ (xu hướng trung tâm) của tập dữ liệu số hoặc danh nghĩa đã cho.calculates the mode (central tendency) of the given numeric or nominal data set.

Làm thế nào để bạn tìm thấy chế độ trong danh sách các số?

Chế độ của tập dữ liệu là số xảy ra thường xuyên nhất trong tập hợp.Để dễ dàng tìm thấy chế độ, hãy đặt các số theo thứ tự ít nhất là lớn nhất và đếm số lần mỗi số xảy ra.Số xảy ra nhiều nhất là chế độ!put the numbers in order from least to greatest and count how many times each number occurs. The number that occurs the most is the mode!