Trong một vài bài đăng trước đây, tôi đã giải thích một số biện pháp thống kê, chẳng hạn như giá trị trung bình và trung vị. Có một biện pháp khác, chế độ, cũng phù hợp với nghiên cứu thống kê. Biện pháp, chế độ, cho biết phần tử xuất hiện thường xuyên nhất trong danh sách
Có một số cách để xác định chế độ trong Python và trong bài đăng này tôi sẽ thảo luận về bốn trong số các phương pháp đó. Ba cách tôi sẽ trình bày được sử dụng trong thư viện bộ sưu tập, thư viện NumPy và thư viện thống kê
Thuật toán đầu tiên tôi sẽ trình bày là sử dụng thư viện bộ sưu tập. Mã giả cho thuật toán này như sau
- Nhập thư viện bộ sưu tập
- Xác định hàm, find_mode, lấy danh sách các số làm đầu vào
- Xác định biến, dữ liệu, đếm số lần 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
- Xác định biến, max_value, nhận giá trị xuất hiện lớn nhất trong dữ liệu
- Xác định biến, mode_val, chọn phần tử có giá trị lớn nhất trong data_list
- Nếu độ dài của num_list giống với mode_val, điều này cho biết không có chế độ nào, nếu không thì mode_val sẽ được in ra
- Khi chức năng hoàn thành, nó sẽ trả về mode_val
Theo tôi, thuật toán sử dụng thư viện NumPy ít phức tạp hơn một chút so với phương pháp sử dụng thư viện bộ sưu tập. Mã giả cho chức năng này được trích dẫn dưới đây
- Nhập thư viện NumPy
- Xác định hàm, find_mode, lấy một mảng NumPy làm đầu vào
- Các biến vals và số đếm được tạo từ hàm NumPy duy nhất, hàm này sẽ tìm các phần tử duy nhất trong một mảng và đếm chúng
- Xác định chỉ mục biến, được lấy từ phương thức NumPy, argmax, sẽ chọn phần tử xuất hiện tối đa theo số lượng
- Sau đó, hàm sẽ trả về chỉ mục của vals
Thuật toán áp chót mà tôi sẽ thảo luận là hàm chế độ nằm trong thư viện thống kê tích hợp, được mô tả trong ảnh chụp màn hình bên dưới
Cách cuối cùng để tìm chế độ là sử dụng thư viện gấu trúc, được sử dụng để tạo và duy trì các khung dữ liệu. Chức năng chế độ là một phần của thư viện pandas. Điều duy nhất cần thiết là chuyển đổi danh sách thành khung dữ liệu và sau đó gọi hàm chế độ
Tôi đã trình bày bốn cách để tìm chế độ trong danh sách, mảng NumPy và khung dữ liệu. Hy vọng rằng tôi đã trang bị cho bạn, người đọc, đủ thông tin để bạn có thể tìm thấy chế độ trong danh sách các giá trị
Tôi đã chuẩn bị một bài đánh giá mã đi kèm với bài đăng này, có thể tìm thấy ở đây. - https. //www. youtube. com/watch?v=UyuYkCMHdXA
Thêm nội dung tại PlainEnglish. io. Đăng ký nhận bản tin hàng tuần miễn phí của chúng tôi. Theo dõi chúng tôi trên Twitter và LinkedIn. Kiểm tra Sự bất hòa trong cộng đồng của chúng tôi và tham gia Tập thể tài năng của chúng tôi
Bạn có thể sử dụng cú pháp cơ bản sau để tìm chế độ của mảng NumPy
#find unique values in array along with their counts
vals, counts = np.unique[array_name, return_counts=True]
#find mode
mode_value = np.argwhere[counts == np.max[counts]]
Nhớ lại rằng chế độ là giá trị xuất hiện thường xuyên nhất trong một mảng
Lưu ý rằng một mảng có thể có một chế độ hoặc nhiều chế độ
Các ví dụ sau đây cho thấy cách sử dụng cú pháp này trong thực tế
ví dụ 1. Chế độ tính toán của mảng NumPy chỉ với một chế độ
Đoạn mã sau cho biết cách tìm chế độ của mảng NumPy trong đó chỉ có một chế độ
import numpy as np #create NumPy array of values with only one mode x = np.array[[2, 2, 2, 3, 4, 4, 5, 5, 5, 5, 7]] #find unique values in array along with their counts vals, counts = np.unique[x, return_counts=True] #find mode mode_value = np.argwhere[counts == np.max[counts]] #print list of modes print[vals[mode_value].flatten[].tolist[]] [5] #find how often mode occurs print[np.max[counts]] 4
Từ đầu ra, chúng ta có thể thấy rằng chế độ là 5 và nó xảy ra 4 lần trong mảng NumPy
ví dụ 2. Chế độ tính toán của mảng NumPy với nhiều chế độ
Đoạn mã sau cho biết cách tìm chế độ của mảng NumPy trong đó có nhiều chế độ
import numpy as np #create NumPy array of values with multiple modes x = np.array[[2, 2, 2, 3, 4, 4, 4, 5, 5, 5, 7]] #find unique values in array along with their counts vals, counts = np.unique[x, return_counts=True] #find mode mode_value = np.argwhere[counts == np.max[counts]] #print list of modes print[vals[mode_value].flatten[].tolist[]] [2, 4, 5] #find how often mode occurs print[np.max[counts]] 3
Từ đầu ra, chúng ta có thể thấy rằng mảng NumPy này có ba chế độ. 2, 4 và 5
Chúng ta cũng có thể thấy rằng mỗi giá trị này xuất hiện 3 lần trong mảng
Tài nguyên bổ sung
Các hướng dẫn sau đây giải thích cách thực hiện các thao tác phổ biến khác trong NumPy
Cách ánh xạ một hàm qua một mảng NumPy
Cách tìm chỉ mục giá trị trong mảng NumPy
Cách tính độ lớn của vectơ bằng NumPy