Bài viết này hướng dẫn bạn cách tính độ lệch chuẩn của một danh sách các giá trị số đã cho trong Python
Định nghĩa và xây dựng vấn đề
Độ lệch chuẩn được định nghĩa là căn bậc hai của phương sai
Trong trường hợp bạn đã tham dự khóa học thống kê cuối cùng của mình cách đây vài năm, hãy nhanh chóng tóm tắt lại định nghĩa về phương sai. phương sai là độ lệch bình phương trung bình của các phần tử danh sách từ giá trị trung bình
Độ lệch chuẩn chỉ đơn giản là căn bậc hai của phương sai
Vậy, làm cách nào để tính độ lệch chuẩn của một danh sách đã cho trong Python?
Tổng quan về giải pháp
Làm cách nào để lấy độ lệch chuẩn của danh sách Python?
Xem video này trên YouTube
Dưới đây là ba phương pháp để thực hiện điều này
- Phương pháp 1. Nhập thư viện NumPy với
import numpy as np lst = [1, 0, 1, 2] std = np.std[lst] print[std] # 0.7071067811865476
2 và gọiimport numpy as np lst = [1, 0, 1, 2] std = np.std[lst] print[std] # 0.7071067811865476
3 - Phương pháp 2. Nhập thư viện
import numpy as np lst = [1, 0, 1, 2] std = np.std[lst] print[std] # 0.7071067811865476
4 vớiimport numpy as np lst = [1, 0, 1, 2] std = np.std[lst] print[std] # 0.7071067811865476
5 và gọiimport numpy as np lst = [1, 0, 1, 2] std = np.std[lst] print[std] # 0.7071067811865476
6 để thu được kết quả hơi khác một chút vì nó được chuẩn hóa bằng [n-1] thay vì n cho n phần tử danh sách — đây được gọi là hiệu chỉnh của Bessel - Phương pháp 3. Trong vanilla Python không có sự phụ thuộc bên ngoài, hãy tính giá trị trung bình là
import numpy as np lst = [1, 0, 1, 2] std = np.std[lst] print[std] # 0.7071067811865476
7 và sau đó tính phương sai bằng cách sử dụng một lớp lótimport numpy as np lst = [1, 0, 1, 2] std = np.std[lst] print[std] # 0.7071067811865476
8
Ngoài ba phương pháp này, chúng tôi cũng sẽ chỉ cho bạn cách tính độ lệch chuẩn trong Khung dữ liệu Pandas ở Phương pháp 4
Nhưng trước khi làm điều này, hãy kiểm tra ba phương thức đầu tiên trong một đoạn mã Python
lst = [1, 0, 1, 2] # 1. NumPy Standard Deviation import numpy as np std = np.std[lst] print[std] # 0.7071067811865476 # 2. Statistics Standard Deviation import statistics std = statistics.stdev[lst] print[std] # 0.816496580927726 # 3. W/O External Dependency avg = sum[lst] / len[lst] var = sum[[x-avg]**2 for x in lst] / len[lst] std = var**0.5 print[std] # 0.7071067811865476
Tiếp theo, hãy đi sâu vào từng phương pháp đó
Phương pháp 1. Độ lệch chuẩn trong Thư viện NumPy
import numpy as np lst = [1, 0, 1, 2] std = np.std[lst] print[std] # 0.7071067811865476
Trong ví dụ đầu tiên, bạn tạo danh sách và chuyển nó làm đối số cho hàm
import numpy as np lst = [1, 0, 1, 2] std = np.std[lst] print[std] # 0.70710678118654769 của thư viện NumPy
💡 Lưu ý. Gói Python dành cho tính toán khoa học dữ liệu NumPy cũng có chức năng thống kê tuyệt vời. Cụ thể, thư viện NumPy cũng hỗ trợ tính toán trên các loại bộ sưu tập cơ bản, không chỉ trên mảng NumPy. Bạn có thể tính toán tất cả các hàm thống kê cơ bản như trung bình, trung bình, phương sai và độ lệch chuẩn trên mảng NumPy
Nếu bạn cần cải thiện kỹ năng NumPy của mình, hãy xem hướng dẫn chuyên sâu trên blog của chúng tôi
Bạn cũng có thể tính độ lệch chuẩn của mảng NumPy thay vì danh sách bằng cách sử dụng phương pháp tương tự
Chỉ cần nhập thư viện NumPy và sử dụng phương pháp
import numpy as np a = np.array[[1, 2, 3]] print[np.std[a]] # 0.8164965809277260 để tính giá trị trung bình của mảng NumPy
import numpy as np a = np.array[[1, 2, 3]] print[np.std[a]] # 0.8164965809277261
Đây là mã
import numpy as np a = np.array[[1, 2, 3]] print[np.std[a]] # 0.816496580927726
Phương pháp 2. Độ lệch chuẩn trong Thư viện thống kê
import statistics lst = [1, 0, 1, 2] std = statistics.stdev[lst] print[std] # 0.816496580927726
Trong ví dụ thứ hai, bạn tính độ lệch chuẩn như sau
Nhập thư viện
import numpy as np lst = [1, 0, 1, 2] std = np.std[lst] print[std] # 0.70710678118654764 và gọi hàm
import numpy as np a = np.array[[1, 2, 3]] print[np.std[a]] # 0.8164965809277263 để tính độ lệch chuẩn của danh sách đã cho
import numpy as np a = np.array[[1, 2, 3]] print[np.std[a]] # 0.8164965809277264. Sự khác biệt duy nhất đối với độ lệch chuẩn NumPy là hiệu chỉnh của Bessel được áp dụng. kết quả được chia cho [n-1] thay vì n
Nếu bạn cần thêm thông tin cơ bản về điều này, hãy nhấp vào liên kết wiki này
Độ lệch chuẩn được định nghĩa là độ lệch của các giá trị dữ liệu so với mức trung bình [wiki]. Nó được sử dụng để đo lường sự phân tán của một tập dữ liệu
Phương pháp 3. Vanilla Python Độ lệch chuẩn
lst = [1, 0, 1, 2] avg = sum[lst] / len[lst] var = sum[[x-avg]**2 for x in lst] / len[lst] std = var**0.5 print[std] # 0.7071067811865476
Trong ví dụ thứ ba, trước tiên bạn tính giá trị trung bình là
import numpy as np a = np.array[[1, 2, 3]] print[np.std[a]] # 0.8164965809277265
Sau đó, bạn sử dụng một biểu thức trình tạo [xem phần hiểu danh sách] để tự động tạo một tập hợp các khác biệt bình phương riêng lẻ, một cho mỗi phần tử danh sách, bằng cách sử dụng biểu thức _______10_______6
Bạn tổng hợp chúng lại và chuẩn hóa kết quả bằng cách chia cho số phần tử danh sách để thu được phương sai
Phương pháp 4. Độ lệch chuẩn trong Python Pandas
Bạn muốn tính độ lệch chuẩn của một cột trong Khung dữ liệu Pandas của mình?
Bạn có thể làm điều này bằng cách sử dụng hàm
import numpy as np a = np.array[[1, 2, 3]] print[np.std[a]] # 0.8164965809277267 tính toán độ lệch chuẩn dọc theo tất cả các cột. Sau đó, bạn có thể lấy cột mà bạn quan tâm sau khi tính toán
import pandas as pd # Create your Pandas DataFrame d = {'username': ['Alice', 'Bob', 'Carl'], 'age': [18, 22, 43], 'income': [100000, 98000, 111000]} df = pd.DataFrame[d] print[df]
DataFrame của bạn trông như thế này
usernameageincome0Alice181000001Bob22980002Carl43111000
Đây là cách bạn có thể tính toán độ lệch chuẩn của tất cả các cột
print[df.std[]]
Đầu ra là độ lệch chuẩn của tất cả các cột
age 13.428825 income 7000.000000 dtype: float64
Để có phương sai của một cột riêng lẻ, hãy truy cập cột đó bằng cách lập chỉ mục đơn giản
print[df.std[]['age']] # 180.33333333333334
Câu hỏi liên quan
Đây là mức tối thiểu tuyệt đối bạn cần biết về tính toán các số liệu thống kê cơ bản, chẳng hạn như độ lệch chuẩn [và phương sai] trong Python
Nhưng còn nhiều điều hơn thế nữa và việc nghiên cứu các cách thức và giải pháp thay thế khác sẽ thực sự giúp bạn trở thành một lập trình viên giỏi hơn
Vì vậy, hãy đi sâu vào một số câu hỏi và chủ đề liên quan mà bạn có thể muốn tìm hiểu
Trung bình danh sách Python
Trung vị của một danh sách Python là gì?
Làm cách nào để tính giá trị trung bình của danh sách Python?
- Sắp xếp danh sách các phần tử bằng cách sử dụng hàm tích hợp
import numpy as np a = np.array[[1, 2, 3]] print[np.std[a]] # 0.816496580927726
8 trong Python - Tính chỉ số của phần tử ở giữa [xem hình] bằng cách chia độ dài của danh sách cho 2 bằng phép chia số nguyên
- Trả lại phần tử ở giữa
Cùng nhau, bạn có thể lấy trung vị một cách đơn giản bằng cách thực hiện biểu thức
import numpy as np a = np.array[[1, 2, 3]] print[np.std[a]] # 0.8164965809277269
Đây là ví dụ mã cụ thể
income = [80000, 90000, 100000, 88000] average = sum[income] / len[income] median = sorted[income][len[income]//2] print[average] # 89500.0 print[median] # 90000.0
hướng dẫn liên quan
- Hướng dẫn chi tiết cách sắp xếp danh sách trong Python trên blog này
Danh sách Python có nghĩa là
Giá trị trung bình hoàn toàn giống với giá trị trung bình. tính tổng tất cả các giá trị trong chuỗi của bạn và chia cho độ dài của chuỗi
Bạn có thể sử dụng phép tính
import statistics lst = [1, 0, 1, 2] std = statistics.stdev[lst] print[std] # 0.8164965809277260 hoặc bạn có thể nhập mô-đun
import numpy as np lst = [1, 0, 1, 2] std = np.std[lst] print[std] # 0.70710678118654764 và gọi
import statistics lst = [1, 0, 1, 2] std = statistics.stdev[lst] print[std] # 0.8164965809277262
Đây là cả hai ví dụ
import numpy as np lst = [1, 0, 1, 2] std = np.std[lst] print[std] # 0.70710678118654760
Cả hai phương pháp đều tương đương. Mô-đun
import numpy as np lst = [1, 0, 1, 2] std = np.std[lst] print[std] # 0.70710678118654764 có một số biến thể thú vị hơn của phương pháp
import statistics lst = [1, 0, 1, 2] std = statistics.stdev[lst] print[std] # 0.8164965809277264 [nguồn]
Điều này đặc biệt thú vị nếu bạn có hai giá trị trung bình và bạn muốn quyết định lấy giá trị nào
Danh sách Python tối thiểu tối đa
Có các hàm tích hợp sẵn của Python tính toán giá trị tối thiểu và tối đa của một danh sách đã cho. Phương pháp
lst = [1, 0, 1, 2] avg = sum[lst] / len[lst] var = sum[[x-avg]**2 for x in lst] / len[lst] std = var**0.5 print[std] # 0.70710678118654761 tính giá trị nhỏ nhất và phương pháp
lst = [1, 0, 1, 2] avg = sum[lst] / len[lst] var = sum[[x-avg]**2 for x in lst] / len[lst] std = var**0.5 print[std] # 0.70710678118654762 tính giá trị lớn nhất trong danh sách
Đây là một ví dụ về các tính toán tối thiểu, tối đa và trung bình trong danh sách Python
import numpy as np lst = [1, 0, 1, 2] std = np.std[lst] print[std] # 0.70710678118654761
Đi đâu từ đây
Tóm lược. cách tính độ lệch chuẩn của một danh sách đã cho trong Python?
- Nhập thư viện NumPy với
import numpy as np lst = [1, 0, 1, 2] std = np.std[lst] print[std] # 0.7071067811865476
2 và sử dụng hàmimport numpy as np lst = [1, 0, 1, 2] std = np.std[lst] print[std] # 0.7071067811865476
3 - Nhập thư viện
import numpy as np lst = [1, 0, 1, 2] std = np.std[lst] print[std] # 0.7071067811865476
4 vớiimport numpy as np lst = [1, 0, 1, 2] std = np.std[lst] print[std] # 0.7071067811865476
5 và gọiimport numpy as np lst = [1, 0, 1, 2] std = np.std[lst] print[std] # 0.7071067811865476
6 để thu được kết quả hơi khác một chút vì nó được chuẩn hóa bằng [n-1] thay vì n cho n phần tử danh sách – đây được gọi là hiệu chỉnh Bessel - Không phụ thuộc bên ngoài. Tính giá trị trung bình là
import numpy as np a = np.array[[1, 2, 3]] print[np.std[a]] # 0.816496580927726
5 và sau đó tính phương sai trong một tuyên bố hiểu danh sách
Nếu bạn tiếp tục vật lộn với những lệnh Python cơ bản đó và bạn cảm thấy bế tắc trong quá trình học tập của mình, thì tôi có thứ này cho bạn. Python One-Liners [Liên kết Amazon]
Trong cuốn sách này, tôi sẽ cung cấp cho bạn tổng quan kỹ lưỡng về các chủ đề khoa học máy tính quan trọng như học máy, biểu thức chính quy, khoa học dữ liệu, NumPy và kiến thức cơ bản về Python—tất cả trong một dòng mã Python
Lấy sách từ Amazon
MÔ TẢ SÁCH CHÍNH THỨC. Python One-Liners sẽ chỉ cho người đọc cách thực hiện các tác vụ hữu ích với một dòng mã Python. Sau phần giới thiệu ngắn gọn về Python, cuốn sách bao gồm các chủ đề nâng cao cần thiết như cắt, hiểu danh sách, phát sóng, hàm lambda, thuật toán, biểu thức chính quy, mạng thần kinh, hồi quy logistic, v.v. Mỗi phần trong số 50 phần của cuốn sách giới thiệu một vấn đề cần giải quyết, hướng dẫn người đọc các kỹ năng cần thiết để giải quyết vấn đề đó, sau đó cung cấp một giải pháp Python ngắn gọn với lời giải thích chi tiết
Chris
Trong khi làm việc với tư cách là một nhà nghiên cứu trong các hệ thống phân tán, Dr. Christian Mayer tìm thấy tình yêu của mình với việc dạy sinh viên khoa học máy tính
Để giúp sinh viên đạt được mức độ thành công Python cao hơn, anh ấy đã thành lập trang web giáo dục lập trình Finxter. com. Ông là tác giả của cuốn sách lập trình nổi tiếng Python One-Liners [NoStarch 2020], đồng tác giả của loạt sách tự xuất bản Coffee Break Python, người đam mê khoa học máy tính, cộng tác viên tự do và chủ sở hữu của một trong 10 blog Python lớn nhất thế giới
Niềm đam mê của anh ấy là viết, đọc và mã hóa. Nhưng niềm đam mê lớn nhất của anh ấy là phục vụ các lập trình viên đầy tham vọng thông qua Finxter và giúp họ nâng cao kỹ năng của mình. Bạn có thể tham gia học viện email miễn phí của anh ấy tại đây