Cách sử dụng descr trong python

Trong kỷ nguyên dữ liệu lớn và trí tuệ nhân tạo, khoa học dữ liệu và học máy đã trở nên thiết yếu trong nhiều lĩnh vực khoa học và công nghệ. Một khía cạnh cần thiết khi làm việc với dữ liệu là khả năng mô tả, tóm tắt và biểu diễn dữ liệu một cách trực quan. Các thư viện thống kê của Python là những công cụ toàn diện, phổ biến và được sử dụng rộng rãi sẽ hỗ trợ bạn làm việc với dữ liệu

Trong hướng dẫn này, bạn sẽ học

  • Số lượng bằng số nào bạn có thể sử dụng để mô tả và tóm tắt bộ dữ liệu của mình
  • Cách tính số liệu thống kê mô tả bằng Python thuần túy
  • Cách lấy số liệu thống kê mô tả với các thư viện Python có sẵn
  • Cách trực quan hóa bộ dữ liệu của bạn

Tiền thưởng miễn phí. Nhấp vào đây để tải xuống 5 ví dụ về Python + Matplotlib với mã nguồn đầy đủ mà bạn có thể sử dụng làm cơ sở để tạo các biểu đồ và đồ họa của riêng mình

Hiểu thống kê mô tả

Thống kê mô tả là về mô tả và tóm tắt dữ liệu. Nó sử dụng hai cách tiếp cận chính

  1. Phương pháp định lượng mô tả và tóm tắt dữ liệu bằng số
  2. Cách tiếp cận trực quan minh họa dữ liệu bằng biểu đồ, sơ đồ, biểu đồ và các biểu đồ khác

Bạn có thể áp dụng thống kê mô tả cho một hoặc nhiều bộ dữ liệu hoặc biến. Khi bạn mô tả và tóm tắt một biến số, bạn đang thực hiện phân tích đơn biến. Khi bạn tìm kiếm các mối quan hệ thống kê giữa một cặp biến, bạn đang thực hiện phân tích hai biến. Tương tự, một phân tích đa biến có liên quan đến nhiều biến cùng một lúc

Loại bỏ các quảng cáo

Các loại biện pháp

Trong hướng dẫn này, bạn sẽ tìm hiểu về các loại thước đo sau trong thống kê mô tả

  • Xu hướng trung tâm cho bạn biết về các trung tâm của dữ liệu. Các biện pháp hữu ích bao gồm giá trị trung bình, trung bình và chế độ
  • Tính khả biến cho bạn biết về sự lan truyền của dữ liệu. Các biện pháp hữu ích bao gồm phương sai và độ lệch chuẩn
  • Mối tương quan hoặc độ biến thiên chung cho bạn biết về mối quan hệ giữa một cặp biến trong tập dữ liệu. Các biện pháp hữu ích bao gồm hiệp phương sai và hệ số tương quan

Bạn sẽ học cách hiểu và tính toán các biện pháp này bằng Python

Dân số và mẫu

Trong thống kê, dân số là tập hợp tất cả các phần tử hoặc mục mà bạn quan tâm. Dân số thường rất lớn, khiến chúng không phù hợp để thu thập và phân tích dữ liệu. Đó là lý do tại sao các nhà thống kê thường cố gắng đưa ra một số kết luận về dân số bằng cách chọn và kiểm tra một tập hợp con đại diện của dân số đó

Tập hợp con này của dân số được gọi là một mẫu. Lý tưởng nhất là mẫu nên bảo tồn các đặc điểm thống kê thiết yếu của dân số ở mức độ thỏa đáng. Bằng cách đó, bạn sẽ có thể sử dụng mẫu để thu thập kết luận về dân số

ngoại lệ

Điểm ngoại lệ là một điểm dữ liệu khác biệt đáng kể so với phần lớn dữ liệu được lấy từ một mẫu hoặc tổng thể. Có nhiều nguyên nhân có thể dẫn đến ngoại lệ, nhưng sau đây là một số nguyên nhân giúp bạn bắt đầu

  • Sự thay đổi tự nhiên trong dữ liệu
  • Thay đổi hành vi của hệ thống được quan sát
  • Sai sót trong thu thập dữ liệu

Lỗi thu thập dữ liệu là một nguyên nhân đặc biệt nổi bật của các ngoại lệ. Ví dụ: các hạn chế của các công cụ hoặc quy trình đo lường có thể có nghĩa là không thể thu được dữ liệu chính xác. Các lỗi khác có thể do tính toán sai, nhiễm dữ liệu, lỗi của con người, v.v.

Không có định nghĩa toán học chính xác về ngoại lệ. Bạn phải dựa vào kinh nghiệm, kiến ​​thức về chủ đề quan tâm và ý thức chung để xác định xem một điểm dữ liệu có phải là điểm bất thường hay không và cách xử lý điểm đó

Chọn thư viện thống kê Python

Có rất nhiều thư viện thống kê Python để bạn làm việc, nhưng trong hướng dẫn này, bạn sẽ tìm hiểu về một số thư viện phổ biến và được sử dụng rộng rãi nhất

  • >>> x = [8.0, 1, 2.5, 4, 28.0]
    >>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
    >>> x
    [8.0, 1, 2.5, 4, 28.0]
    >>> x_with_nan
    [8.0, 1, 2.5, nan, 4, 28.0]
    
    12 của Python là một thư viện Python tích hợp cho các số liệu thống kê mô tả. Bạn có thể sử dụng nó nếu bộ dữ liệu của bạn không quá lớn hoặc nếu bạn không thể dựa vào việc nhập các thư viện khác

  • NumPy là thư viện của bên thứ ba dành cho tính toán số, được tối ưu hóa để làm việc với các mảng đơn và đa chiều. Kiểu chính của nó là kiểu mảng có tên là

    >>> x = [8.0, 1, 2.5, 4, 28.0]
    >>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
    >>> x
    [8.0, 1, 2.5, 4, 28.0]
    >>> x_with_nan
    [8.0, 1, 2.5, nan, 4, 28.0]
    
    13. Thư viện này chứa nhiều thói quen để phân tích thống kê

  • SciPy là thư viện của bên thứ ba dành cho máy tính khoa học dựa trên NumPy. Nó cung cấp chức năng bổ sung so với NumPy, bao gồm

    >>> x = [8.0, 1, 2.5, 4, 28.0]
    >>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
    >>> x
    [8.0, 1, 2.5, 4, 28.0]
    >>> x_with_nan
    [8.0, 1, 2.5, nan, 4, 28.0]
    
    14 để phân tích thống kê

  • Pandas là thư viện của bên thứ ba để tính toán số dựa trên NumPy. Nó vượt trội trong việc xử lý dữ liệu một chiều (1D) được gắn nhãn với _______ 15 đối tượng và dữ liệu 2 chiều (2D) với _______ 16 đối tượng

  • Matplotlib là thư viện của bên thứ ba để trực quan hóa dữ liệu. Nó hoạt động tốt khi kết hợp với NumPy, SciPy và Pandas

Lưu ý rằng, trong nhiều trường hợp, các đối tượng

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
15 và
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
16 có thể được sử dụng thay cho mảng NumPy. Thông thường, bạn có thể chuyển chúng đến hàm thống kê NumPy hoặc SciPy. In addition, you can get the unlabeled data from a
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
15 or
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
16 as a
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
21 object by calling
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
22 or
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
23

Getting Started With Python Statistics Libraries

The built-in Python

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
12 library has a relatively small number of the most important statistics functions. The official documentation is a valuable resource to find the details. If you’re limited to pure Python, then the Python
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
12 library might be the right choice

A good place to start learning about NumPy is the official User Guide, especially the quickstart and basics sections. The official reference can help you refresh your memory on specific NumPy concepts. While you read this tutorial, you might want to check out the statistics section and the official

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
14 reference as well

Ghi chú

To learn more about NumPy, check out these resources

  • Look Ma, No For-Loops. Array Programming With NumPy
  • Pythonic Data Cleaning With Pandas and NumPy
  • NumPy arange(). How to Use np. arange()

If you want to learn Pandas, then the official Getting Started page is an excellent place to begin. The introduction to data structures can help you learn about the fundamental data types,

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
15 and
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
16. Likewise, the excellent official introductory tutorial aims to give you enough information to start effectively using Pandas in practice

Ghi chú

To learn more about Pandas, check out these resources

  • Using Pandas and Python to Explore Your Dataset
  • Pandas DataFrames 101
  • Idiomatic Pandas. Tricks & Features You May Not Know
  • Fast, Flexible, Easy and Intuitive. How to Speed Up Your Pandas Projects

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
29 has a comprehensive official User’s Guide that you can use to dive into the details of using the library. Anatomy of Matplotlib is an excellent resource for beginners who want to start working with
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
29 and its related libraries

Ghi chú

Để tìm hiểu thêm về trực quan hóa dữ liệu, hãy xem các tài nguyên này

  • Python Plotting With Matplotlib (Guide)
  • Vẽ biểu đồ Python. NumPy, Matplotlib, Pandas và Seaborn
  • Trực quan hóa dữ liệu tương tác trong Python với Bokeh
  • Âm mưu với gấu trúc. Trực quan hóa dữ liệu Python cho người mới bắt đầu

Hãy bắt đầu sử dụng các thư viện thống kê Python này

Loại bỏ các quảng cáo

Tính toán thống kê mô tả

Bắt đầu bằng cách nhập tất cả các gói bạn cần

>>>

>>> import math
>>> import statistics
>>> import numpy as np
>>> import scipy.stats
>>> import pandas as pd

Đây là tất cả các gói bạn cần để tính toán thống kê Python. Thông thường, bạn sẽ không sử dụng gói

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
31 tích hợp sẵn của Python, nhưng nó sẽ hữu ích trong hướng dẫn này. Sau đó, bạn sẽ nhập
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
32 để trực quan hóa dữ liệu

Hãy tạo một số dữ liệu để làm việc với. Bạn sẽ bắt đầu với các danh sách Python chứa một số dữ liệu số tùy ý

>>>

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]

Bây giờ bạn có các danh sách

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
33 và
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
34. Chúng gần như giống nhau, với sự khác biệt là
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
34 chứa giá trị
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
36. Điều quan trọng là phải hiểu hành vi của các quy trình thống kê Python khi chúng bắt gặp một giá trị không phải là số (
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
36). Trong khoa học dữ liệu, các giá trị bị thiếu là phổ biến và bạn sẽ thường thay thế chúng bằng
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
36

Ghi chú. Làm cách nào để bạn nhận được giá trị

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
36?

Trong Python, bạn có thể sử dụng bất kỳ cách nào sau đây

Bạn có thể sử dụng tất cả các chức năng này thay thế cho nhau

>>>

>>> math.isnan(np.nan), np.isnan(math.nan)
(True, True)
>>> math.isnan(y_with_nan[3]), np.isnan(y_with_nan[3])
(True, True)

Bạn có thể thấy rằng các chức năng đều tương đương nhau. Tuy nhiên, xin lưu ý rằng so sánh hai giá trị

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
36 cho đẳng thức trả về
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
44. Nói cách khác,
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
45 là
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
44

Bây giờ, hãy tạo các đối tượng

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
21 và
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
48 tương ứng với
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
33 và
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
34

>>>

>>> y, y_with_nan = np.array(x), np.array(x_with_nan)
>>> z, z_with_nan = pd.Series(x), pd.Series(x_with_nan)
>>> y
array([ 8. ,  1. ,  2.5, 4. , 28. ])
>>> y_with_nan
array([ 8. ,  1. ,  2.5,  nan,  4. , 28. ])
>>> z
0     8.0
1     1.0
2     2.5
3     4.0
4    28.0
dtype: float64
>>> z_with_nan
0     8.0
1     1.0
2     2.5
3     NaN
4     4.0
5    28.0
dtype: float64

Bây giờ bạn có hai mảng NumPy (_______0_______51 và

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
52) và hai Pandas
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
15 (
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
54 và
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
55). Tất cả đều là các chuỗi giá trị 1D

Ghi chú. Mặc dù bạn sẽ sử dụng các danh sách trong suốt hướng dẫn này, nhưng xin lưu ý rằng, trong hầu hết các trường hợp, bạn có thể sử dụng các bộ dữ liệu theo cùng một cách

Bạn có thể tùy chọn chỉ định nhãn cho từng giá trị trong

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
54 và
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
55

Biện pháp của xu hướng trung ương

Các biện pháp của xu hướng trung tâm hiển thị các giá trị trung tâm hoặc giữa của bộ dữ liệu. Có một số định nghĩa về những gì được coi là trung tâm của tập dữ liệu. Trong hướng dẫn này, bạn sẽ học cách xác định và tính toán các thước đo xu hướng trung tâm này

  • Nghĩa là
  • trung bình có trọng số
  • trung bình hình học
  • điều hòa trung bình
  • Trung bình
  • Chế độ

Nghĩa là

Giá trị trung bình mẫu, còn được gọi là giá trị trung bình số học mẫu hoặc đơn giản là giá trị trung bình, là giá trị trung bình cộng của tất cả các mục trong tập dữ liệu. Giá trị trung bình của tập dữ liệu 𝑥 được biểu thị bằng toán học là Σᵢ𝑥ᵢ/𝑛, trong đó 𝑖 = 1, 2, …, 𝑛. Nói cách khác, nó là tổng của tất cả các phần tử 𝑥ᵢ chia cho số phần tử trong tập dữ liệu 𝑥

Hình này minh họa giá trị trung bình của một mẫu có năm điểm dữ liệu

Cách sử dụng descr trong python

Các chấm màu xanh lá cây đại diện cho các điểm dữ liệu 1, 2. 5, 4, 8 và 28. Đường đứt nét màu đỏ là giá trị trung bình của chúng, hoặc (1 + 2. 5 + 4 + 8 + 28) / 5 = 8. 7

Bạn có thể tính giá trị trung bình bằng Python thuần bằng cách sử dụng và

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
59 mà không cần nhập thư viện

>>>

>>> mean_ = sum(x) / len(x)
>>> mean_
8.7

Mặc dù điều này rõ ràng và thanh lịch, nhưng bạn cũng có thể áp dụng các hàm thống kê Python tích hợp

>>>

>>> mean_ = statistics.mean(x)
>>> mean_
8.7
>>> mean_ = statistics.fmean(x)
>>> mean_
8.7

Bạn đã gọi các hàm và từ thư viện Python

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
12 tích hợp và nhận được kết quả tương tự như bạn đã làm với Python thuần túy.
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
61 được giới thiệu trong Python 3. 8 như một giải pháp thay thế nhanh hơn cho
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
60. Nó luôn trả về một số dấu phẩy động

Tuy nhiên, nếu có các giá trị

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
36 trong dữ liệu của bạn, thì
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
66 và
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
67 sẽ trả về
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
36 làm đầu ra

>>>

>>> mean_ = statistics.mean(x_with_nan)
>>> mean_
nan
>>> mean_ = statistics.fmean(x_with_nan)
>>> mean_
nan

Kết quả này phù hợp với hành vi của

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
58, bởi vì
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
70 cũng trả về
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
36

Nếu bạn sử dụng NumPy, thì bạn có thể lấy giá trị trung bình bằng

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
72

>>>

>>> mean_ = np.mean(y)
>>> mean_
8.7

Trong ví dụ trên,

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
60 là một hàm, nhưng bạn cũng có thể sử dụng phương thức tương ứng
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
74

>>>

>>> mean_ = y.mean()
>>> mean_
8.7

Hàm

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
60 và phương thức
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
74 từ NumPy trả về kết quả tương tự như
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
66. Đây cũng là trường hợp khi có
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
36 giá trị trong dữ liệu của bạn

>>>

>>> np.mean(y_with_nan)
nan
>>> y_with_nan.mean()
nan

Kết quả là bạn thường không cần nhận giá trị

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
36. Nếu bạn muốn bỏ qua các giá trị
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
36, thì bạn có thể sử dụng
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
81

>>>

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
0

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
82 chỉ cần bỏ qua tất cả các giá trị
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
36. Nó trả về giá trị giống như
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
60 nếu bạn áp dụng nó cho tập dữ liệu mà không có giá trị
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
36

Các đối tượng

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
48 cũng có phương thức
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
74

>>>

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
1

Như bạn có thể thấy, nó được sử dụng tương tự như trong trường hợp của NumPy. Tuy nhiên,

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
74 từ Pandas bỏ qua giá trị
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
36 theo mặc định

>>>

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
2

Hành vi này là kết quả của giá trị mặc định của tham số tùy chọn

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
90. Bạn có thể thay đổi tham số này để sửa đổi hành vi

trung bình có trọng số

Giá trị trung bình có trọng số, còn được gọi là giá trị trung bình số học có trọng số hoặc trung bình có trọng số, là tổng quát hóa của giá trị trung bình số học cho phép bạn xác định mức độ đóng góp tương đối của từng điểm dữ liệu vào kết quả

Bạn xác định một trọng số 𝑤ᵢ cho mỗi điểm dữ liệu 𝑥ᵢ của tập dữ liệu 𝑥, trong đó 𝑖 = 1, 2, …, 𝑛 và 𝑛 là số mục trong 𝑥. Sau đó, bạn nhân từng điểm dữ liệu với trọng số tương ứng, tính tổng tất cả các tích và chia tổng thu được cho tổng trọng số. Σᵢ(𝑤ᵢ𝑥ᵢ) / Σᵢ𝑤ᵢ

Ghi chú. Thuận tiện (và thường là như vậy) khi tất cả các trọng số đều không âm, 𝑤ᵢ ≥ 0 và tổng của chúng bằng một hoặc Σᵢ𝑤ᵢ = 1

Giá trị trung bình có trọng số rất tiện dụng khi bạn cần giá trị trung bình của tập dữ liệu chứa các mục xuất hiện với tần suất tương đối nhất định. Ví dụ: giả sử bạn có một tập hợp trong đó 20% tổng số mục là 2, 50% mục là 4 và 30% mục còn lại là 8. Bạn có thể tính giá trị trung bình của một tập hợp như thế này

>>>

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
3

Ở đây, bạn tính đến tần số với trọng số. Với phương pháp này, bạn không cần biết tổng số mặt hàng

Bạn có thể triển khai giá trị trung bình có trọng số bằng Python thuần túy bằng cách kết hợp

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
58 với
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
92 hoặc
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
93

>>>

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
4

Một lần nữa, đây là một triển khai sạch sẽ và thanh lịch, nơi bạn không cần nhập bất kỳ thư viện nào

Tuy nhiên, nếu bạn có bộ dữ liệu lớn, thì NumPy có thể cung cấp giải pháp tốt hơn. Bạn có thể sử dụng

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
94 để lấy giá trị trung bình có trọng số của mảng NumPy hoặc Pandas
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
15

>>>

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
5

Kết quả giống như trong trường hợp triển khai Python thuần túy. Bạn cũng có thể sử dụng phương pháp này trên các danh sách và bộ thông thường

Một giải pháp khác là sử dụng sản phẩm thông minh về phần tử

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
96 với
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
97 hoặc
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
98

>>>

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
6

Đó là nó. Bạn đã tính giá trị trung bình có trọng số

Tuy nhiên, hãy cẩn thận nếu tập dữ liệu của bạn chứa các giá trị

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
36

>>>

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
7

Trong trường hợp này,

>>> math.isnan(np.nan), np.isnan(math.nan)
(True, True)
>>> math.isnan(y_with_nan[3]), np.isnan(y_with_nan[3])
(True, True)
00 trả về
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
36, phù hợp với
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
72

trung bình điều hòa

Giá trị trung bình điều hòa là nghịch đảo của giá trị trung bình của các nghịch đảo của tất cả các mục trong tập dữ liệu. 𝑛 / Σᵢ(1/𝑥ᵢ), trong đó 𝑖 = 1, 2, …, 𝑛 và 𝑛 là số phần tử trong tập dữ liệu 𝑥. Một biến thể của việc triển khai Python thuần túy của ý nghĩa điều hòa là đây

>>>

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
8

Nó hoàn toàn khác với giá trị của trung bình cộng cho cùng một dữ liệu

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
33, mà bạn đã tính là 8. 7

Bạn cũng có thể tính toán biện pháp này với

>>>

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
9

Ví dụ trên cho thấy một triển khai của

>>> math.isnan(np.nan), np.isnan(math.nan)
(True, True)
>>> math.isnan(y_with_nan[3]), np.isnan(y_with_nan[3])
(True, True)
04. Nếu bạn có giá trị
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
36 trong tập dữ liệu, thì nó sẽ trả về
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
36. Nếu có ít nhất một
>>> math.isnan(np.nan), np.isnan(math.nan)
(True, True)
>>> math.isnan(y_with_nan[3]), np.isnan(y_with_nan[3])
(True, True)
08, thì nó sẽ trả về
>>> math.isnan(np.nan), np.isnan(math.nan)
(True, True)
>>> math.isnan(y_with_nan[3]), np.isnan(y_with_nan[3])
(True, True)
08. Nếu bạn cung cấp ít nhất một số âm thì bạn sẽ nhận được

>>>

>>> math.isnan(np.nan), np.isnan(math.nan)
(True, True)
>>> math.isnan(y_with_nan[3]), np.isnan(y_with_nan[3])
(True, True)
0

Hãy ghi nhớ ba tình huống này khi bạn đang sử dụng phương pháp này

Cách thứ ba để tính trung bình điều hòa là sử dụng

>>> math.isnan(np.nan), np.isnan(math.nan)
(True, True)
>>> math.isnan(y_with_nan[3]), np.isnan(y_with_nan[3])
(True, True)
11

>>>

>>> math.isnan(np.nan), np.isnan(math.nan)
(True, True)
>>> math.isnan(y_with_nan[3]), np.isnan(y_with_nan[3])
(True, True)
1

Một lần nữa, đây là một thực hiện khá đơn giản. Tuy nhiên, nếu tập dữ liệu của bạn chứa

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
36,
>>> math.isnan(np.nan), np.isnan(math.nan)
(True, True)
>>> math.isnan(y_with_nan[3]), np.isnan(y_with_nan[3])
(True, True)
08, số âm hoặc bất kỳ thứ gì ngoại trừ số dương, thì bạn sẽ nhận được

trung bình hình học

Giá trị trung bình hình học là căn bậc 𝑛 của tích tất cả 𝑛 phần tử 𝑥ᵢ trong tập dữ liệu 𝑥. ⁿ√(Πᵢ𝑥ᵢ), trong đó 𝑖 = 1, 2, …, 𝑛. Hình dưới đây minh họa các phương tiện số học, điều hòa và hình học của một tập dữ liệu

Cách sử dụng descr trong python

Một lần nữa, các chấm màu xanh lá cây đại diện cho các điểm dữ liệu 1, 2. 5, 4, 8 và 28. Đường đứt nét màu đỏ là giá trị trung bình. Đường đứt nét màu xanh lam là giá trị trung bình điều hòa và đường đứt nét màu vàng là giá trị trung bình hình học

Bạn có thể triển khai ý nghĩa hình học bằng Python thuần túy như thế này

>>>

>>> math.isnan(np.nan), np.isnan(math.nan)
(True, True)
>>> math.isnan(y_with_nan[3]), np.isnan(y_with_nan[3])
(True, True)
2

Như bạn có thể thấy, giá trị của trung bình hình học, trong trường hợp này, khác biệt đáng kể so với các giá trị của số học (8. 7) và điều hòa (2. 76) có nghĩa là cho cùng một bộ dữ liệu

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
33

Trăn 3. 8 đã giới thiệu, chuyển đổi tất cả các giá trị thành số dấu phẩy động và trả về giá trị trung bình hình học của chúng

>>>

>>> math.isnan(np.nan), np.isnan(math.nan)
(True, True)
>>> math.isnan(y_with_nan[3]), np.isnan(y_with_nan[3])
(True, True)
3

Bạn đã có kết quả giống như trong ví dụ trước, nhưng với lỗi làm tròn tối thiểu

Nếu bạn truyền dữ liệu với các giá trị

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
36, thì
>>> math.isnan(np.nan), np.isnan(math.nan)
(True, True)
>>> math.isnan(y_with_nan[3]), np.isnan(y_with_nan[3])
(True, True)
16 sẽ hoạt động giống như hầu hết các hàm tương tự và trả về
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
36

>>>

>>> math.isnan(np.nan), np.isnan(math.nan)
(True, True)
>>> math.isnan(y_with_nan[3]), np.isnan(y_with_nan[3])
(True, True)
4

Thật vậy, điều này phù hợp với hành vi của

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
66,
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
67 và
>>> math.isnan(np.nan), np.isnan(math.nan)
(True, True)
>>> math.isnan(y_with_nan[3]), np.isnan(y_with_nan[3])
(True, True)
04. Nếu có số 0 hoặc số âm trong dữ liệu của bạn, thì
>>> math.isnan(np.nan), np.isnan(math.nan)
(True, True)
>>> math.isnan(y_with_nan[3]), np.isnan(y_with_nan[3])
(True, True)
16 sẽ tăng
>>> math.isnan(np.nan), np.isnan(math.nan)
(True, True)
>>> math.isnan(y_with_nan[3]), np.isnan(y_with_nan[3])
(True, True)
10

Bạn cũng có thể lấy giá trị trung bình hình học với

>>> math.isnan(np.nan), np.isnan(math.nan)
(True, True)
>>> math.isnan(y_with_nan[3]), np.isnan(y_with_nan[3])
(True, True)
25

>>>

>>> math.isnan(np.nan), np.isnan(math.nan)
(True, True)
>>> math.isnan(y_with_nan[3]), np.isnan(y_with_nan[3])
(True, True)
5

Bạn đã thu được kết quả tương tự như khi triển khai Python thuần túy

Nếu bạn có các giá trị

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
36 trong tập dữ liệu, thì
>>> math.isnan(np.nan), np.isnan(math.nan)
(True, True)
>>> math.isnan(y_with_nan[3]), np.isnan(y_with_nan[3])
(True, True)
27 sẽ trả về
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
36. Nếu có ít nhất một
>>> math.isnan(np.nan), np.isnan(math.nan)
(True, True)
>>> math.isnan(y_with_nan[3]), np.isnan(y_with_nan[3])
(True, True)
08, thì nó sẽ trả về
>>> math.isnan(np.nan), np.isnan(math.nan)
(True, True)
>>> math.isnan(y_with_nan[3]), np.isnan(y_with_nan[3])
(True, True)
30 và đưa ra cảnh báo. Nếu bạn cung cấp ít nhất một số âm, thì bạn sẽ nhận được
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
36 và cảnh báo

Trung bình

Trung vị mẫu là phần tử ở giữa của tập dữ liệu được sắp xếp. Tập dữ liệu có thể được sắp xếp theo thứ tự tăng hoặc giảm. Nếu số phần tử 𝑛 của tập dữ liệu là số lẻ thì trung vị là giá trị ở vị trí chính giữa. 0. 5(𝑛 + 1). Nếu 𝑛 chẵn thì trung vị là trung bình cộng của hai giá trị ở giữa, tức là các phần tử ở vị trí 0. 5𝑛 và 0. 5𝑛 + 1

Ví dụ: nếu bạn có các điểm dữ liệu 2, 4, 1, 8 và 9 thì giá trị trung bình là 4, nằm ở giữa tập dữ liệu đã sắp xếp (1, 2, 4, 8, 9). Nếu các điểm dữ liệu là 2, 4, 1 và 8 thì trung vị là 3, là trung bình cộng của hai phần tử ở giữa của dãy đã sắp xếp (2 và 4). Hình dưới đây minh họa điều này

Cách sử dụng descr trong python

Các điểm dữ liệu là các chấm màu xanh lá cây và các đường màu tím hiển thị giá trị trung bình cho từng tập dữ liệu. Giá trị trung bình cho tập dữ liệu trên (1, 2. 5, 4, 8 và 28) là 4. Nếu bạn loại bỏ giá trị ngoại lệ 28 khỏi tập dữ liệu thấp hơn, thì trung vị sẽ trở thành trung bình cộng giữa 2. 5 và 4, đó là 3. 25

Hình dưới đây cho thấy cả giá trị trung bình và trung vị của các điểm dữ liệu 1, 2. 5, 4, 8 và 28

Cách sử dụng descr trong python

Một lần nữa, giá trị trung bình là đường đứt nét màu đỏ, trong khi trung vị là đường màu tím

Sự khác biệt chính giữa hành vi của giá trị trung bình và trung bình có liên quan đến các giá trị ngoại lệ hoặc cực trị của tập dữ liệu. Giá trị trung bình bị ảnh hưởng nặng nề bởi các giá trị ngoại lệ, nhưng giá trị trung bình chỉ phụ thuộc vào các giá trị ngoại lệ một chút hoặc hoàn toàn không. Xét hình sau

Cách sử dụng descr trong python

Tập dữ liệu trên lại có các mục 1, 2. 5, 4, 8 và 28. Ý nghĩa của nó là 8. 7, và trung bình là 5, như bạn đã thấy trước đó. Tập dữ liệu bên dưới hiển thị điều gì đang xảy ra khi bạn di chuyển điểm ngoài cùng bên phải với giá trị 28

  • Nếu bạn tăng giá trị của nó (di chuyển nó sang phải), thì giá trị trung bình sẽ tăng, nhưng giá trị trung vị sẽ không bao giờ thay đổi
  • Nếu bạn giảm giá trị của nó (di chuyển nó sang trái), thì giá trị trung bình sẽ giảm, nhưng trung vị sẽ giữ nguyên cho đến khi giá trị của điểm di chuyển lớn hơn hoặc bằng 4

Bạn có thể so sánh giá trị trung bình và trung vị như một cách để phát hiện các giá trị ngoại lệ và bất đối xứng trong dữ liệu của mình. Giá trị trung bình hay giá trị trung bình hữu ích hơn cho bạn tùy thuộc vào ngữ cảnh của vấn đề cụ thể của bạn

Đây là một trong nhiều triển khai Python thuần túy có thể có của trung vị

>>>

>>> math.isnan(np.nan), np.isnan(math.nan)
(True, True)
>>> math.isnan(y_with_nan[3]), np.isnan(y_with_nan[3])
(True, True)
6

Hai bước quan trọng nhất của việc thực hiện này như sau

  1. Sắp xếp các phần tử của tập dữ liệu
  2. Tìm (các) phần tử ở giữa trong tập dữ liệu đã sắp xếp

Bạn có thể lấy trung bình với

>>>

>>> math.isnan(np.nan), np.isnan(math.nan)
(True, True)
>>> math.isnan(y_with_nan[3]), np.isnan(y_with_nan[3])
(True, True)
7

Phiên bản được sắp xếp của

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
33 là
>>> math.isnan(np.nan), np.isnan(math.nan)
(True, True)
>>> math.isnan(y_with_nan[3]), np.isnan(y_with_nan[3])
(True, True)
34, vì vậy phần tử ở giữa là
>>> math.isnan(np.nan), np.isnan(math.nan)
(True, True)
>>> math.isnan(y_with_nan[3]), np.isnan(y_with_nan[3])
(True, True)
35. Phiên bản đã sắp xếp của
>>> math.isnan(np.nan), np.isnan(math.nan)
(True, True)
>>> math.isnan(y_with_nan[3]), np.isnan(y_with_nan[3])
(True, True)
36, là
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
33 không có mục cuối cùng
>>> math.isnan(np.nan), np.isnan(math.nan)
(True, True)
>>> math.isnan(y_with_nan[3]), np.isnan(y_with_nan[3])
(True, True)
38, là
>>> math.isnan(np.nan), np.isnan(math.nan)
(True, True)
>>> math.isnan(y_with_nan[3]), np.isnan(y_with_nan[3])
(True, True)
39. Bây giờ, có hai phần tử ở giữa,
>>> math.isnan(np.nan), np.isnan(math.nan)
(True, True)
>>> math.isnan(y_with_nan[3]), np.isnan(y_with_nan[3])
(True, True)
40 và
>>> math.isnan(np.nan), np.isnan(math.nan)
(True, True)
>>> math.isnan(y_with_nan[3]), np.isnan(y_with_nan[3])
(True, True)
35. Trung bình của họ là
>>> math.isnan(np.nan), np.isnan(math.nan)
(True, True)
>>> math.isnan(y_with_nan[3]), np.isnan(y_with_nan[3])
(True, True)
42

và là hai hàm nữa liên quan đến trung vị trong thư viện Python

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
12. Chúng luôn trả về một phần tử từ tập dữ liệu

  • Nếu số phần tử là số lẻ, thì sẽ có một giá trị ở giữa, vì vậy các hàm này hoạt động giống như
    >>> math.isnan(np.nan), np.isnan(math.nan)
    (True, True)
    >>> math.isnan(y_with_nan[3]), np.isnan(y_with_nan[3])
    (True, True)
    
    46
  • Nếu số phần tử là số chẵn thì có hai giá trị ở giữa. Trong trường hợp này,
    >>> math.isnan(np.nan), np.isnan(math.nan)
    (True, True)
    >>> math.isnan(y_with_nan[3]), np.isnan(y_with_nan[3])
    (True, True)
    
    43 trả về giá trị thấp hơn và
    >>> math.isnan(np.nan), np.isnan(math.nan)
    (True, True)
    >>> math.isnan(y_with_nan[3]), np.isnan(y_with_nan[3])
    (True, True)
    
    44 trả về giá trị trung bình cao hơn

Bạn có thể sử dụng các chức năng này giống như cách bạn sử dụng

>>> math.isnan(np.nan), np.isnan(math.nan)
(True, True)
>>> math.isnan(y_with_nan[3]), np.isnan(y_with_nan[3])
(True, True)
46

>>>

>>> math.isnan(np.nan), np.isnan(math.nan)
(True, True)
>>> math.isnan(y_with_nan[3]), np.isnan(y_with_nan[3])
(True, True)
8

Một lần nữa, phiên bản được sắp xếp của

>>> math.isnan(np.nan), np.isnan(math.nan)
(True, True)
>>> math.isnan(y_with_nan[3]), np.isnan(y_with_nan[3])
(True, True)
36 là
>>> math.isnan(np.nan), np.isnan(math.nan)
(True, True)
>>> math.isnan(y_with_nan[3]), np.isnan(y_with_nan[3])
(True, True)
39. Hai yếu tố ở giữa là
>>> math.isnan(np.nan), np.isnan(math.nan)
(True, True)
>>> math.isnan(y_with_nan[3]), np.isnan(y_with_nan[3])
(True, True)
40 (thấp) và
>>> math.isnan(np.nan), np.isnan(math.nan)
(True, True)
>>> math.isnan(y_with_nan[3]), np.isnan(y_with_nan[3])
(True, True)
35 (cao)

Không giống như hầu hết các hàm khác từ thư viện Python

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
12,
>>> math.isnan(np.nan), np.isnan(math.nan)
(True, True)
>>> math.isnan(y_with_nan[3]), np.isnan(y_with_nan[3])
(True, True)
46,
>>> math.isnan(np.nan), np.isnan(math.nan)
(True, True)
>>> math.isnan(y_with_nan[3]), np.isnan(y_with_nan[3])
(True, True)
43 và
>>> math.isnan(np.nan), np.isnan(math.nan)
(True, True)
>>> math.isnan(y_with_nan[3]), np.isnan(y_with_nan[3])
(True, True)
44 không trả về
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
36 khi có các giá trị
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
36 trong số các điểm dữ liệu

>>>

>>> math.isnan(np.nan), np.isnan(math.nan)
(True, True)
>>> math.isnan(y_with_nan[3]), np.isnan(y_with_nan[3])
(True, True)
9

Hãy coi chừng hành vi này vì nó có thể không phải là điều bạn muốn

Bạn cũng có thể lấy số trung bình với

>>> math.isnan(np.nan), np.isnan(math.nan)
(True, True)
>>> math.isnan(y_with_nan[3]), np.isnan(y_with_nan[3])
(True, True)
60

>>> ______39_______0

Bạn đã nhận được các giá trị giống nhau với

>>> math.isnan(np.nan), np.isnan(math.nan)
(True, True)
>>> math.isnan(y_with_nan[3]), np.isnan(y_with_nan[3])
(True, True)
32 và
>>> math.isnan(np.nan), np.isnan(math.nan)
(True, True)
>>> math.isnan(y_with_nan[3]), np.isnan(y_with_nan[3])
(True, True)
60

Tuy nhiên, nếu có một giá trị

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
36 trong tập dữ liệu của bạn, thì
>>> math.isnan(np.nan), np.isnan(math.nan)
(True, True)
>>> math.isnan(y_with_nan[3]), np.isnan(y_with_nan[3])
(True, True)
60 đưa ra và trả về
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
36. Nếu hành vi này không phải là điều bạn muốn, thì bạn có thể sử dụng
>>> math.isnan(np.nan), np.isnan(math.nan)
(True, True)
>>> math.isnan(y_with_nan[3]), np.isnan(y_with_nan[3])
(True, True)
67 để bỏ qua tất cả các giá trị
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
36

>>>

>>> y, y_with_nan = np.array(x), np.array(x_with_nan)
>>> z, z_with_nan = pd.Series(x), pd.Series(x_with_nan)
>>> y
array([ 8. ,  1. ,  2.5, 4. , 28. ])
>>> y_with_nan
array([ 8. ,  1. ,  2.5,  nan,  4. , 28. ])
>>> z
0     8.0
1     1.0
2     2.5
3     4.0
4    28.0
dtype: float64
>>> z_with_nan
0     8.0
1     1.0
2     2.5
3     NaN
4     4.0
5    28.0
dtype: float64
1

Kết quả thu được giống như với

>>> math.isnan(np.nan), np.isnan(math.nan)
(True, True)
>>> math.isnan(y_with_nan[3]), np.isnan(y_with_nan[3])
(True, True)
32 và
>>> math.isnan(np.nan), np.isnan(math.nan)
(True, True)
>>> math.isnan(y_with_nan[3]), np.isnan(y_with_nan[3])
(True, True)
60 được áp dụng cho bộ dữ liệu
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
33 và
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
51

Các đối tượng của Pandas

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
15 có phương thức
>>> math.isnan(np.nan), np.isnan(math.nan)
(True, True)
>>> math.isnan(y_with_nan[3]), np.isnan(y_with_nan[3])
(True, True)
74 bỏ qua các giá trị
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
36 theo mặc định

>>>

>>> y, y_with_nan = np.array(x), np.array(x_with_nan)
>>> z, z_with_nan = pd.Series(x), pd.Series(x_with_nan)
>>> y
array([ 8. ,  1. ,  2.5, 4. , 28. ])
>>> y_with_nan
array([ 8. ,  1. ,  2.5,  nan,  4. , 28. ])
>>> z
0     8.0
1     1.0
2     2.5
3     4.0
4    28.0
dtype: float64
>>> z_with_nan
0     8.0
1     1.0
2     2.5
3     NaN
4     4.0
5    28.0
dtype: float64
2

Hành vi của

>>> math.isnan(np.nan), np.isnan(math.nan)
(True, True)
>>> math.isnan(y_with_nan[3]), np.isnan(y_with_nan[3])
(True, True)
74 phù hợp với
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
74 trong Pandas. Bạn có thể thay đổi hành vi này bằng tham số tùy chọn
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
90

Chế độ

Chế độ mẫu là giá trị trong tập dữ liệu xảy ra thường xuyên nhất. Nếu không có một giá trị nào như vậy, thì tập hợp đó là đa phương thức vì nó có nhiều giá trị phương thức. Ví dụ: trong tập hợp có các điểm 2, 3, 2, 8 và 12, số 2 là chế độ vì nó xảy ra hai lần, không giống như các mục khác chỉ xảy ra một lần

Đây là cách bạn có thể lấy chế độ bằng Python thuần túy

>>>

>>> y, y_with_nan = np.array(x), np.array(x_with_nan)
>>> z, z_with_nan = pd.Series(x), pd.Series(x_with_nan)
>>> y
array([ 8. ,  1. ,  2.5, 4. , 28. ])
>>> y_with_nan
array([ 8. ,  1. ,  2.5,  nan,  4. , 28. ])
>>> z
0     8.0
1     1.0
2     2.5
3     4.0
4    28.0
dtype: float64
>>> z_with_nan
0     8.0
1     1.0
2     2.5
3     NaN
4     4.0
5    28.0
dtype: float64
3

Bạn sử dụng

>>> math.isnan(np.nan), np.isnan(math.nan)
(True, True)
>>> math.isnan(y_with_nan[3]), np.isnan(y_with_nan[3])
(True, True)
79 để lấy số lần xuất hiện của từng mục trong
>>> math.isnan(np.nan), np.isnan(math.nan)
(True, True)
>>> math.isnan(y_with_nan[3]), np.isnan(y_with_nan[3])
(True, True)
80. Mục có số lần xuất hiện tối đa là chế độ. Lưu ý rằng bạn không phải sử dụng
>>> math.isnan(np.nan), np.isnan(math.nan)
(True, True)
>>> math.isnan(y_with_nan[3]), np.isnan(y_with_nan[3])
(True, True)
81. Thay vào đó, bạn có thể thay thế nó bằng chỉ
>>> math.isnan(np.nan), np.isnan(math.nan)
(True, True)
>>> math.isnan(y_with_nan[3]), np.isnan(y_with_nan[3])
(True, True)
80 và lặp lại toàn bộ danh sách

Ghi chú.

>>> math.isnan(np.nan), np.isnan(math.nan)
(True, True)
>>> math.isnan(y_with_nan[3]), np.isnan(y_with_nan[3])
(True, True)
81 trả về một bộ Python với tất cả các mục duy nhất trong
>>> math.isnan(np.nan), np.isnan(math.nan)
(True, True)
>>> math.isnan(y_with_nan[3]), np.isnan(y_with_nan[3])
(True, True)
80. Bạn có thể sử dụng thủ thuật này để tối ưu hóa làm việc với dữ liệu lớn hơn, đặc biệt khi bạn muốn thấy nhiều bản sao

Bạn có thể có được chế độ với và

>>>

>>> y, y_with_nan = np.array(x), np.array(x_with_nan)
>>> z, z_with_nan = pd.Series(x), pd.Series(x_with_nan)
>>> y
array([ 8. ,  1. ,  2.5, 4. , 28. ])
>>> y_with_nan
array([ 8. ,  1. ,  2.5,  nan,  4. , 28. ])
>>> z
0     8.0
1     1.0
2     2.5
3     4.0
4    28.0
dtype: float64
>>> z_with_nan
0     8.0
1     1.0
2     2.5
3     NaN
4     4.0
5    28.0
dtype: float64
4

Như bạn có thể thấy,

>>> math.isnan(np.nan), np.isnan(math.nan)
(True, True)
>>> math.isnan(y_with_nan[3]), np.isnan(y_with_nan[3])
(True, True)
87 trả về một giá trị duy nhất, trong khi
>>> math.isnan(np.nan), np.isnan(math.nan)
(True, True)
>>> math.isnan(y_with_nan[3]), np.isnan(y_with_nan[3])
(True, True)
88 trả về danh sách chứa kết quả. Tuy nhiên, đây không phải là sự khác biệt duy nhất giữa hai chức năng. Nếu có nhiều hơn một giá trị phương thức, thì
>>> math.isnan(np.nan), np.isnan(math.nan)
(True, True)
>>> math.isnan(y_with_nan[3]), np.isnan(y_with_nan[3])
(True, True)
87 tăng
>>> math.isnan(np.nan), np.isnan(math.nan)
(True, True)
>>> math.isnan(y_with_nan[3]), np.isnan(y_with_nan[3])
(True, True)
90, trong khi
>>> math.isnan(np.nan), np.isnan(math.nan)
(True, True)
>>> math.isnan(y_with_nan[3]), np.isnan(y_with_nan[3])
(True, True)
88 trả về danh sách với tất cả các phương thức

>>>

>>> y, y_with_nan = np.array(x), np.array(x_with_nan)
>>> z, z_with_nan = pd.Series(x), pd.Series(x_with_nan)
>>> y
array([ 8. ,  1. ,  2.5, 4. , 28. ])
>>> y_with_nan
array([ 8. ,  1. ,  2.5,  nan,  4. , 28. ])
>>> z
0     8.0
1     1.0
2     2.5
3     4.0
4    28.0
dtype: float64
>>> z_with_nan
0     8.0
1     1.0
2     2.5
3     NaN
4     4.0
5    28.0
dtype: float64
5

Bạn nên đặc biệt chú ý đến tình huống này và cẩn thận khi lựa chọn giữa hai chức năng này

>>> math.isnan(np.nan), np.isnan(math.nan)
(True, True)
>>> math.isnan(y_with_nan[3]), np.isnan(y_with_nan[3])
(True, True)
85 và
>>> math.isnan(np.nan), np.isnan(math.nan)
(True, True)
>>> math.isnan(y_with_nan[3]), np.isnan(y_with_nan[3])
(True, True)
86 xử lý giá trị
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
36 dưới dạng giá trị thông thường và có thể trả về
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
36 làm giá trị phương thức

>>>

>>> y, y_with_nan = np.array(x), np.array(x_with_nan)
>>> z, z_with_nan = pd.Series(x), pd.Series(x_with_nan)
>>> y
array([ 8. ,  1. ,  2.5, 4. , 28. ])
>>> y_with_nan
array([ 8. ,  1. ,  2.5,  nan,  4. , 28. ])
>>> z
0     8.0
1     1.0
2     2.5
3     4.0
4    28.0
dtype: float64
>>> z_with_nan
0     8.0
1     1.0
2     2.5
3     NaN
4     4.0
5    28.0
dtype: float64
6

Trong ví dụ đầu tiên ở trên, số

>>> math.isnan(np.nan), np.isnan(math.nan)
(True, True)
>>> math.isnan(y_with_nan[3]), np.isnan(y_with_nan[3])
(True, True)
96 xuất hiện hai lần và là giá trị phương thức. Trong ví dụ thứ hai,
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
36 là giá trị phương thức vì nó xảy ra hai lần, trong khi các giá trị khác chỉ xảy ra một lần

Ghi chú.

>>> math.isnan(np.nan), np.isnan(math.nan)
(True, True)
>>> math.isnan(y_with_nan[3]), np.isnan(y_with_nan[3])
(True, True)
86 được giới thiệu trong Python 3. 8

Bạn cũng có thể nhận chế độ với

>>> math.isnan(np.nan), np.isnan(math.nan)
(True, True)
>>> math.isnan(y_with_nan[3]), np.isnan(y_with_nan[3])
(True, True)
99

>>>

>>> y, y_with_nan = np.array(x), np.array(x_with_nan)
>>> z, z_with_nan = pd.Series(x), pd.Series(x_with_nan)
>>> y
array([ 8. ,  1. ,  2.5, 4. , 28. ])
>>> y_with_nan
array([ 8. ,  1. ,  2.5,  nan,  4. , 28. ])
>>> z
0     8.0
1     1.0
2     2.5
3     4.0
4    28.0
dtype: float64
>>> z_with_nan
0     8.0
1     1.0
2     2.5
3     NaN
4     4.0
5    28.0
dtype: float64
7

Hàm này trả về đối tượng với giá trị phương thức và số lần nó xảy ra. Nếu có nhiều giá trị phương thức trong tập dữ liệu, thì chỉ giá trị nhỏ nhất được trả về

Bạn có thể lấy chế độ và số lần xuất hiện của nó dưới dạng mảng NumPy với ký hiệu dấu chấm

>>>

>>> y, y_with_nan = np.array(x), np.array(x_with_nan)
>>> z, z_with_nan = pd.Series(x), pd.Series(x_with_nan)
>>> y
array([ 8. ,  1. ,  2.5, 4. , 28. ])
>>> y_with_nan
array([ 8. ,  1. ,  2.5,  nan,  4. , 28. ])
>>> z
0     8.0
1     1.0
2     2.5
3     4.0
4    28.0
dtype: float64
>>> z_with_nan
0     8.0
1     1.0
2     2.5
3     NaN
4     4.0
5    28.0
dtype: float64
8

Mã này sử dụng

>>> y, y_with_nan = np.array(x), np.array(x_with_nan)
>>> z, z_with_nan = pd.Series(x), pd.Series(x_with_nan)
>>> y
array([ 8. ,  1. ,  2.5, 4. , 28. ])
>>> y_with_nan
array([ 8. ,  1. ,  2.5,  nan,  4. , 28. ])
>>> z
0     8.0
1     1.0
2     2.5
3     4.0
4    28.0
dtype: float64
>>> z_with_nan
0     8.0
1     1.0
2     2.5
3     NaN
4     4.0
5    28.0
dtype: float64
00 để trả về chế độ nhỏ nhất (
>>> y, y_with_nan = np.array(x), np.array(x_with_nan)
>>> z, z_with_nan = pd.Series(x), pd.Series(x_with_nan)
>>> y
array([ 8. ,  1. ,  2.5, 4. , 28. ])
>>> y_with_nan
array([ 8. ,  1. ,  2.5,  nan,  4. , 28. ])
>>> z
0     8.0
1     1.0
2     2.5
3     4.0
4    28.0
dtype: float64
>>> z_with_nan
0     8.0
1     1.0
2     2.5
3     NaN
4     4.0
5    28.0
dtype: float64
01) trong mảng
>>> y, y_with_nan = np.array(x), np.array(x_with_nan)
>>> z, z_with_nan = pd.Series(x), pd.Series(x_with_nan)
>>> y
array([ 8. ,  1. ,  2.5, 4. , 28. ])
>>> y_with_nan
array([ 8. ,  1. ,  2.5,  nan,  4. , 28. ])
>>> z
0     8.0
1     1.0
2     2.5
3     4.0
4    28.0
dtype: float64
>>> z_with_nan
0     8.0
1     1.0
2     2.5
3     NaN
4     4.0
5    28.0
dtype: float64
02 và
>>> y, y_with_nan = np.array(x), np.array(x_with_nan)
>>> z, z_with_nan = pd.Series(x), pd.Series(x_with_nan)
>>> y
array([ 8. ,  1. ,  2.5, 4. , 28. ])
>>> y_with_nan
array([ 8. ,  1. ,  2.5,  nan,  4. , 28. ])
>>> z
0     8.0
1     1.0
2     2.5
3     4.0
4    28.0
dtype: float64
>>> z_with_nan
0     8.0
1     1.0
2     2.5
3     NaN
4     4.0
5    28.0
dtype: float64
03 để trả về số lần nó xảy ra (
>>> y, y_with_nan = np.array(x), np.array(x_with_nan)
>>> z, z_with_nan = pd.Series(x), pd.Series(x_with_nan)
>>> y
array([ 8. ,  1. ,  2.5, 4. , 28. ])
>>> y_with_nan
array([ 8. ,  1. ,  2.5,  nan,  4. , 28. ])
>>> z
0     8.0
1     1.0
2     2.5
3     4.0
4    28.0
dtype: float64
>>> z_with_nan
0     8.0
1     1.0
2     2.5
3     NaN
4     4.0
5    28.0
dtype: float64
04).
>>> math.isnan(np.nan), np.isnan(math.nan)
(True, True)
>>> math.isnan(y_with_nan[3]), np.isnan(y_with_nan[3])
(True, True)
99 cũng linh hoạt với các giá trị
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
36. Nó cho phép bạn xác định hành vi mong muốn với tham số tùy chọn
>>> y, y_with_nan = np.array(x), np.array(x_with_nan)
>>> z, z_with_nan = pd.Series(x), pd.Series(x_with_nan)
>>> y
array([ 8. ,  1. ,  2.5, 4. , 28. ])
>>> y_with_nan
array([ 8. ,  1. ,  2.5,  nan,  4. , 28. ])
>>> z
0     8.0
1     1.0
2     2.5
3     4.0
4    28.0
dtype: float64
>>> z_with_nan
0     8.0
1     1.0
2     2.5
3     NaN
4     4.0
5    28.0
dtype: float64
07. Tham số này có thể nhận các giá trị
>>> y, y_with_nan = np.array(x), np.array(x_with_nan)
>>> z, z_with_nan = pd.Series(x), pd.Series(x_with_nan)
>>> y
array([ 8. ,  1. ,  2.5, 4. , 28. ])
>>> y_with_nan
array([ 8. ,  1. ,  2.5,  nan,  4. , 28. ])
>>> z
0     8.0
1     1.0
2     2.5
3     4.0
4    28.0
dtype: float64
>>> z_with_nan
0     8.0
1     1.0
2     2.5
3     NaN
4     4.0
5    28.0
dtype: float64
08,
>>> y, y_with_nan = np.array(x), np.array(x_with_nan)
>>> z, z_with_nan = pd.Series(x), pd.Series(x_with_nan)
>>> y
array([ 8. ,  1. ,  2.5, 4. , 28. ])
>>> y_with_nan
array([ 8. ,  1. ,  2.5,  nan,  4. , 28. ])
>>> z
0     8.0
1     1.0
2     2.5
3     4.0
4    28.0
dtype: float64
>>> z_with_nan
0     8.0
1     1.0
2     2.5
3     NaN
4     4.0
5    28.0
dtype: float64
09 (lỗi) hoặc
>>> y, y_with_nan = np.array(x), np.array(x_with_nan)
>>> z, z_with_nan = pd.Series(x), pd.Series(x_with_nan)
>>> y
array([ 8. ,  1. ,  2.5, 4. , 28. ])
>>> y_with_nan
array([ 8. ,  1. ,  2.5,  nan,  4. , 28. ])
>>> z
0     8.0
1     1.0
2     2.5
3     4.0
4    28.0
dtype: float64
>>> z_with_nan
0     8.0
1     1.0
2     2.5
3     NaN
4     4.0
5    28.0
dtype: float64
10

Các đối tượng

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
15 của gấu trúc có phương thức xử lý tốt các giá trị đa phương thức và bỏ qua các giá trị
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
36 theo mặc định

>>>

>>> y, y_with_nan = np.array(x), np.array(x_with_nan)
>>> z, z_with_nan = pd.Series(x), pd.Series(x_with_nan)
>>> y
array([ 8. ,  1. ,  2.5, 4. , 28. ])
>>> y_with_nan
array([ 8. ,  1. ,  2.5,  nan,  4. , 28. ])
>>> z
0     8.0
1     1.0
2     2.5
3     4.0
4    28.0
dtype: float64
>>> z_with_nan
0     8.0
1     1.0
2     2.5
3     NaN
4     4.0
5    28.0
dtype: float64
9

Như bạn có thể thấy,

>>> y, y_with_nan = np.array(x), np.array(x_with_nan)
>>> z, z_with_nan = pd.Series(x), pd.Series(x_with_nan)
>>> y
array([ 8. ,  1. ,  2.5, 4. , 28. ])
>>> y_with_nan
array([ 8. ,  1. ,  2.5,  nan,  4. , 28. ])
>>> z
0     8.0
1     1.0
2     2.5
3     4.0
4    28.0
dtype: float64
>>> z_with_nan
0     8.0
1     1.0
2     2.5
3     NaN
4     4.0
5    28.0
dtype: float64
12 trả về một
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
48 mới chứa tất cả các giá trị phương thức. Nếu bạn muốn
>>> y, y_with_nan = np.array(x), np.array(x_with_nan)
>>> z, z_with_nan = pd.Series(x), pd.Series(x_with_nan)
>>> y
array([ 8. ,  1. ,  2.5, 4. , 28. ])
>>> y_with_nan
array([ 8. ,  1. ,  2.5,  nan,  4. , 28. ])
>>> z
0     8.0
1     1.0
2     2.5
3     4.0
4    28.0
dtype: float64
>>> z_with_nan
0     8.0
1     1.0
2     2.5
3     NaN
4     4.0
5    28.0
dtype: float64
12 tính đến các giá trị của
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
36, thì chỉ cần chuyển đối số tùy chọn
>>> y, y_with_nan = np.array(x), np.array(x_with_nan)
>>> z, z_with_nan = pd.Series(x), pd.Series(x_with_nan)
>>> y
array([ 8. ,  1. ,  2.5, 4. , 28. ])
>>> y_with_nan
array([ 8. ,  1. ,  2.5,  nan,  4. , 28. ])
>>> z
0     8.0
1     1.0
2     2.5
3     4.0
4    28.0
dtype: float64
>>> z_with_nan
0     8.0
1     1.0
2     2.5
3     NaN
4     4.0
5    28.0
dtype: float64
18

Loại bỏ các quảng cáo

Các biện pháp thay đổi

Các biện pháp của xu hướng trung tâm không đủ để mô tả dữ liệu. Bạn cũng sẽ cần các biện pháp thay đổi để định lượng mức độ lan truyền của các điểm dữ liệu. Trong phần này, bạn sẽ học cách xác định và tính toán các thước đo độ biến thiên sau

  • phương sai
  • Độ lệch chuẩn
  • độ lệch
  • phần trăm
  • Các dãy

phương sai

Phương sai mẫu định lượng mức độ lan truyền của dữ liệu. Nó hiển thị bằng số các điểm dữ liệu cách giá trị trung bình bao xa. Bạn có thể biểu thị phương sai mẫu của tập dữ liệu 𝑥 với 𝑛 phần tử dưới dạng toán học là 𝑠² = Σᵢ(𝑥ᵢ − mean(𝑥))² / (𝑛 − 1), trong đó 𝑖 = 1, 2, …, 𝑛 và mean(𝑥) là . Nếu bạn muốn hiểu sâu hơn tại sao bạn chia tổng cho 𝑛 − 1 thay vì 𝑛, thì bạn có thể tìm hiểu sâu hơn về hiệu chỉnh của Bessel

Hình dưới đây cho bạn thấy lý do tại sao điều quan trọng là phải xem xét phương sai khi mô tả bộ dữ liệu

Cách sử dụng descr trong python

Có hai bộ dữ liệu trong hình này

  1. chấm xanh. Tập dữ liệu này có phương sai nhỏ hơn hoặc chênh lệch trung bình nhỏ hơn so với giá trị trung bình. Nó cũng có phạm vi nhỏ hơn hoặc chênh lệch nhỏ hơn giữa mục lớn nhất và mục nhỏ nhất
  2. chấm trắng. Tập dữ liệu này có phương sai lớn hơn hoặc chênh lệch trung bình lớn hơn so với giá trị trung bình. Nó cũng có phạm vi lớn hơn hoặc sự khác biệt lớn hơn giữa mục lớn nhất và mục nhỏ nhất

Lưu ý rằng hai bộ dữ liệu này có cùng giá trị trung bình và trung bình, mặc dù chúng có vẻ khác nhau đáng kể. Cả giá trị trung bình và trung vị đều không thể mô tả sự khác biệt này. Đó là lý do tại sao bạn cần các biện pháp thay đổi

Đây là cách bạn có thể tính phương sai mẫu bằng Python thuần túy

>>>

>>> mean_ = sum(x) / len(x)
>>> mean_
8.7
0

Cách tiếp cận này là đủ và tính toán phương sai mẫu tốt. Tuy nhiên, giải pháp ngắn gọn và thanh lịch hơn là gọi hàm hiện có

>>>

>>> mean_ = sum(x) / len(x)
>>> mean_
8.7
1

Bạn đã thu được kết quả tương tự cho phương sai như trên.

>>> y, y_with_nan = np.array(x), np.array(x_with_nan)
>>> z, z_with_nan = pd.Series(x), pd.Series(x_with_nan)
>>> y
array([ 8. ,  1. ,  2.5, 4. , 28. ])
>>> y_with_nan
array([ 8. ,  1. ,  2.5,  nan,  4. , 28. ])
>>> z
0     8.0
1     1.0
2     2.5
3     4.0
4    28.0
dtype: float64
>>> z_with_nan
0     8.0
1     1.0
2     2.5
3     NaN
4     4.0
5    28.0
dtype: float64
20 có thể tránh tính giá trị trung bình nếu bạn cung cấp giá trị trung bình một cách rõ ràng làm đối số thứ hai.
>>> y, y_with_nan = np.array(x), np.array(x_with_nan)
>>> z, z_with_nan = pd.Series(x), pd.Series(x_with_nan)
>>> y
array([ 8. ,  1. ,  2.5, 4. , 28. ])
>>> y_with_nan
array([ 8. ,  1. ,  2.5,  nan,  4. , 28. ])
>>> z
0     8.0
1     1.0
2     2.5
3     4.0
4    28.0
dtype: float64
>>> z_with_nan
0     8.0
1     1.0
2     2.5
3     NaN
4     4.0
5    28.0
dtype: float64
21

Nếu bạn có các giá trị

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
36 trong dữ liệu của mình, thì
>>> y, y_with_nan = np.array(x), np.array(x_with_nan)
>>> z, z_with_nan = pd.Series(x), pd.Series(x_with_nan)
>>> y
array([ 8. ,  1. ,  2.5, 4. , 28. ])
>>> y_with_nan
array([ 8. ,  1. ,  2.5,  nan,  4. , 28. ])
>>> z
0     8.0
1     1.0
2     2.5
3     4.0
4    28.0
dtype: float64
>>> z_with_nan
0     8.0
1     1.0
2     2.5
3     NaN
4     4.0
5    28.0
dtype: float64
19 sẽ trả về
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
36

>>>

>>> mean_ = sum(x) / len(x)
>>> mean_
8.7
2

Hành vi này phù hợp với

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
60 và hầu hết các chức năng khác từ thư viện Python
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
12

Bạn cũng có thể tính phương sai mẫu với NumPy. Bạn nên sử dụng hàm

>>> y, y_with_nan = np.array(x), np.array(x_with_nan)
>>> z, z_with_nan = pd.Series(x), pd.Series(x_with_nan)
>>> y
array([ 8. ,  1. ,  2.5, 4. , 28. ])
>>> y_with_nan
array([ 8. ,  1. ,  2.5,  nan,  4. , 28. ])
>>> z
0     8.0
1     1.0
2     2.5
3     4.0
4    28.0
dtype: float64
>>> z_with_nan
0     8.0
1     1.0
2     2.5
3     NaN
4     4.0
5    28.0
dtype: float64
27 hoặc phương thức tương ứng
>>> y, y_with_nan = np.array(x), np.array(x_with_nan)
>>> z, z_with_nan = pd.Series(x), pd.Series(x_with_nan)
>>> y
array([ 8. ,  1. ,  2.5, 4. , 28. ])
>>> y_with_nan
array([ 8. ,  1. ,  2.5,  nan,  4. , 28. ])
>>> z
0     8.0
1     1.0
2     2.5
3     4.0
4    28.0
dtype: float64
>>> z_with_nan
0     8.0
1     1.0
2     2.5
3     NaN
4     4.0
5    28.0
dtype: float64
28

>>>

>>> mean_ = sum(x) / len(x)
>>> mean_
8.7
3

Điều rất quan trọng là chỉ định tham số

>>> y, y_with_nan = np.array(x), np.array(x_with_nan)
>>> z, z_with_nan = pd.Series(x), pd.Series(x_with_nan)
>>> y
array([ 8. ,  1. ,  2.5, 4. , 28. ])
>>> y_with_nan
array([ 8. ,  1. ,  2.5,  nan,  4. , 28. ])
>>> z
0     8.0
1     1.0
2     2.5
3     4.0
4    28.0
dtype: float64
>>> z_with_nan
0     8.0
1     1.0
2     2.5
3     NaN
4     4.0
5    28.0
dtype: float64
29. Đó là cách bạn đặt bậc tự do delta thành
>>> y, y_with_nan = np.array(x), np.array(x_with_nan)
>>> z, z_with_nan = pd.Series(x), pd.Series(x_with_nan)
>>> y
array([ 8. ,  1. ,  2.5, 4. , 28. ])
>>> y_with_nan
array([ 8. ,  1. ,  2.5,  nan,  4. , 28. ])
>>> z
0     8.0
1     1.0
2     2.5
3     4.0
4    28.0
dtype: float64
>>> z_with_nan
0     8.0
1     1.0
2     2.5
3     NaN
4     4.0
5    28.0
dtype: float64
30. Tham số này cho phép tính đúng 𝑠², với (𝑛 − 1) ở mẫu số thay vì 𝑛

Nếu bạn có các giá trị

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
36 trong tập dữ liệu, thì
>>> y, y_with_nan = np.array(x), np.array(x_with_nan)
>>> z, z_with_nan = pd.Series(x), pd.Series(x_with_nan)
>>> y
array([ 8. ,  1. ,  2.5, 4. , 28. ])
>>> y_with_nan
array([ 8. ,  1. ,  2.5,  nan,  4. , 28. ])
>>> z
0     8.0
1     1.0
2     2.5
3     4.0
4    28.0
dtype: float64
>>> z_with_nan
0     8.0
1     1.0
2     2.5
3     NaN
4     4.0
5    28.0
dtype: float64
27 và
>>> y, y_with_nan = np.array(x), np.array(x_with_nan)
>>> z, z_with_nan = pd.Series(x), pd.Series(x_with_nan)
>>> y
array([ 8. ,  1. ,  2.5, 4. , 28. ])
>>> y_with_nan
array([ 8. ,  1. ,  2.5,  nan,  4. , 28. ])
>>> z
0     8.0
1     1.0
2     2.5
3     4.0
4    28.0
dtype: float64
>>> z_with_nan
0     8.0
1     1.0
2     2.5
3     NaN
4     4.0
5    28.0
dtype: float64
28 sẽ trả về
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
36

>>>

>>> mean_ = sum(x) / len(x)
>>> mean_
8.7
4

Điều này nhất quán với

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
72 và
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
94. Nếu bạn muốn bỏ qua giá trị
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
36, thì bạn nên sử dụng
>>> y, y_with_nan = np.array(x), np.array(x_with_nan)
>>> z, z_with_nan = pd.Series(x), pd.Series(x_with_nan)
>>> y
array([ 8. ,  1. ,  2.5, 4. , 28. ])
>>> y_with_nan
array([ 8. ,  1. ,  2.5,  nan,  4. , 28. ])
>>> z
0     8.0
1     1.0
2     2.5
3     4.0
4    28.0
dtype: float64
>>> z_with_nan
0     8.0
1     1.0
2     2.5
3     NaN
4     4.0
5    28.0
dtype: float64
38

>>>

>>> mean_ = sum(x) / len(x)
>>> mean_
8.7
5

>>> y, y_with_nan = np.array(x), np.array(x_with_nan)
>>> z, z_with_nan = pd.Series(x), pd.Series(x_with_nan)
>>> y
array([ 8. ,  1. ,  2.5, 4. , 28. ])
>>> y_with_nan
array([ 8. ,  1. ,  2.5,  nan,  4. , 28. ])
>>> z
0     8.0
1     1.0
2     2.5
3     4.0
4    28.0
dtype: float64
>>> z_with_nan
0     8.0
1     1.0
2     2.5
3     NaN
4     4.0
5    28.0
dtype: float64
38 bỏ qua các giá trị của
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
36. Nó cũng cần bạn chỉ định
>>> y, y_with_nan = np.array(x), np.array(x_with_nan)
>>> z, z_with_nan = pd.Series(x), pd.Series(x_with_nan)
>>> y
array([ 8. ,  1. ,  2.5, 4. , 28. ])
>>> y_with_nan
array([ 8. ,  1. ,  2.5,  nan,  4. , 28. ])
>>> z
0     8.0
1     1.0
2     2.5
3     4.0
4    28.0
dtype: float64
>>> z_with_nan
0     8.0
1     1.0
2     2.5
3     NaN
4     4.0
5    28.0
dtype: float64
29

Các đối tượng

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
48 có phương thức
>>> y, y_with_nan = np.array(x), np.array(x_with_nan)
>>> z, z_with_nan = pd.Series(x), pd.Series(x_with_nan)
>>> y
array([ 8. ,  1. ,  2.5, 4. , 28. ])
>>> y_with_nan
array([ 8. ,  1. ,  2.5,  nan,  4. , 28. ])
>>> z
0     8.0
1     1.0
2     2.5
3     4.0
4    28.0
dtype: float64
>>> z_with_nan
0     8.0
1     1.0
2     2.5
3     NaN
4     4.0
5    28.0
dtype: float64
28 bỏ qua các giá trị
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
36 theo mặc định

>>>

>>> mean_ = sum(x) / len(x)
>>> mean_
8.7
6

Nó cũng có tham số

>>> y, y_with_nan = np.array(x), np.array(x_with_nan)
>>> z, z_with_nan = pd.Series(x), pd.Series(x_with_nan)
>>> y
array([ 8. ,  1. ,  2.5, 4. , 28. ])
>>> y_with_nan
array([ 8. ,  1. ,  2.5,  nan,  4. , 28. ])
>>> z
0     8.0
1     1.0
2     2.5
3     4.0
4    28.0
dtype: float64
>>> z_with_nan
0     8.0
1     1.0
2     2.5
3     NaN
4     4.0
5    28.0
dtype: float64
45, nhưng giá trị mặc định của nó là
>>> y, y_with_nan = np.array(x), np.array(x_with_nan)
>>> z, z_with_nan = pd.Series(x), pd.Series(x_with_nan)
>>> y
array([ 8. ,  1. ,  2.5, 4. , 28. ])
>>> y_with_nan
array([ 8. ,  1. ,  2.5,  nan,  4. , 28. ])
>>> z
0     8.0
1     1.0
2     2.5
3     4.0
4    28.0
dtype: float64
>>> z_with_nan
0     8.0
1     1.0
2     2.5
3     NaN
4     4.0
5    28.0
dtype: float64
30, vì vậy bạn có thể bỏ qua nó. Nếu bạn muốn một hành vi khác liên quan đến các giá trị
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
36, thì hãy sử dụng tham số tùy chọn
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
90

Bạn tính phương sai dân số tương tự như phương sai mẫu. Tuy nhiên, bạn phải sử dụng 𝑛 ở mẫu số thay vì 𝑛 − 1. Σᵢ(𝑥ᵢ − nghĩa là(𝑥))² / 𝑛. Trong trường hợp này, 𝑛 là số phần tử trong toàn bộ tổng thể. Bạn có thể nhận được phương sai dân số tương tự như phương sai mẫu, với những khác biệt sau

  • Thay thế
    >>> y, y_with_nan = np.array(x), np.array(x_with_nan)
    >>> z, z_with_nan = pd.Series(x), pd.Series(x_with_nan)
    >>> y
    array([ 8. ,  1. ,  2.5, 4. , 28. ])
    >>> y_with_nan
    array([ 8. ,  1. ,  2.5,  nan,  4. , 28. ])
    >>> z
    0     8.0
    1     1.0
    2     2.5
    3     4.0
    4    28.0
    dtype: float64
    >>> z_with_nan
    0     8.0
    1     1.0
    2     2.5
    3     NaN
    4     4.0
    5    28.0
    dtype: float64
    
    49 bằng
    >>> y, y_with_nan = np.array(x), np.array(x_with_nan)
    >>> z, z_with_nan = pd.Series(x), pd.Series(x_with_nan)
    >>> y
    array([ 8. ,  1. ,  2.5, 4. , 28. ])
    >>> y_with_nan
    array([ 8. ,  1. ,  2.5,  nan,  4. , 28. ])
    >>> z
    0     8.0
    1     1.0
    2     2.5
    3     4.0
    4    28.0
    dtype: float64
    >>> z_with_nan
    0     8.0
    1     1.0
    2     2.5
    3     NaN
    4     4.0
    5    28.0
    dtype: float64
    
    50 trong triển khai Python thuần túy
  • Sử dụng thay vì
    >>> y, y_with_nan = np.array(x), np.array(x_with_nan)
    >>> z, z_with_nan = pd.Series(x), pd.Series(x_with_nan)
    >>> y
    array([ 8. ,  1. ,  2.5, 4. , 28. ])
    >>> y_with_nan
    array([ 8. ,  1. ,  2.5,  nan,  4. , 28. ])
    >>> z
    0     8.0
    1     1.0
    2     2.5
    3     4.0
    4    28.0
    dtype: float64
    >>> z_with_nan
    0     8.0
    1     1.0
    2     2.5
    3     NaN
    4     4.0
    5    28.0
    dtype: float64
    
    19
  • Chỉ định tham số
    >>> y, y_with_nan = np.array(x), np.array(x_with_nan)
    >>> z, z_with_nan = pd.Series(x), pd.Series(x_with_nan)
    >>> y
    array([ 8. ,  1. ,  2.5, 4. , 28. ])
    >>> y_with_nan
    array([ 8. ,  1. ,  2.5,  nan,  4. , 28. ])
    >>> z
    0     8.0
    1     1.0
    2     2.5
    3     4.0
    4    28.0
    dtype: float64
    >>> z_with_nan
    0     8.0
    1     1.0
    2     2.5
    3     NaN
    4     4.0
    5    28.0
    dtype: float64
    
    53 nếu bạn sử dụng NumPy hoặc Pandas. Trong NumPy, bạn có thể bỏ qua
    >>> y, y_with_nan = np.array(x), np.array(x_with_nan)
    >>> z, z_with_nan = pd.Series(x), pd.Series(x_with_nan)
    >>> y
    array([ 8. ,  1. ,  2.5, 4. , 28. ])
    >>> y_with_nan
    array([ 8. ,  1. ,  2.5,  nan,  4. , 28. ])
    >>> z
    0     8.0
    1     1.0
    2     2.5
    3     4.0
    4    28.0
    dtype: float64
    >>> z_with_nan
    0     8.0
    1     1.0
    2     2.5
    3     NaN
    4     4.0
    5    28.0
    dtype: float64
    
    45 vì giá trị mặc định của nó là
    >>> math.isnan(np.nan), np.isnan(math.nan)
    (True, True)
    >>> math.isnan(y_with_nan[3]), np.isnan(y_with_nan[3])
    (True, True)
    
    08

Lưu ý rằng bạn phải luôn biết liệu bạn đang làm việc với một mẫu hay toàn bộ dân số bất cứ khi nào bạn tính toán phương sai

Độ lệch chuẩn

Độ lệch chuẩn của mẫu là một thước đo khác của sự lan truyền dữ liệu. Nó được kết nối với phương sai mẫu, vì độ lệch chuẩn, 𝑠, là căn bậc hai dương của phương sai mẫu. Độ lệch chuẩn thường thuận tiện hơn phương sai vì nó có cùng đơn vị với các điểm dữ liệu. Khi bạn nhận được phương sai, bạn có thể tính độ lệch chuẩn bằng Python thuần túy

>>>

>>> mean_ = sum(x) / len(x)
>>> mean_
8.7
7

Mặc dù giải pháp này hoạt động, bạn cũng có thể sử dụng

>>>

>>> mean_ = sum(x) / len(x)
>>> mean_
8.7
8

Tất nhiên, kết quả vẫn giống như trước đây. Giống như

>>> y, y_with_nan = np.array(x), np.array(x_with_nan)
>>> z, z_with_nan = pd.Series(x), pd.Series(x_with_nan)
>>> y
array([ 8. ,  1. ,  2.5, 4. , 28. ])
>>> y_with_nan
array([ 8. ,  1. ,  2.5,  nan,  4. , 28. ])
>>> z
0     8.0
1     1.0
2     2.5
3     4.0
4    28.0
dtype: float64
>>> z_with_nan
0     8.0
1     1.0
2     2.5
3     NaN
4     4.0
5    28.0
dtype: float64
20,
>>> y, y_with_nan = np.array(x), np.array(x_with_nan)
>>> z, z_with_nan = pd.Series(x), pd.Series(x_with_nan)
>>> y
array([ 8. ,  1. ,  2.5, 4. , 28. ])
>>> y_with_nan
array([ 8. ,  1. ,  2.5,  nan,  4. , 28. ])
>>> z
0     8.0
1     1.0
2     2.5
3     4.0
4    28.0
dtype: float64
>>> z_with_nan
0     8.0
1     1.0
2     2.5
3     NaN
4     4.0
5    28.0
dtype: float64
58 không tính giá trị trung bình nếu bạn cung cấp nó một cách rõ ràng làm đối số thứ hai.
>>> y, y_with_nan = np.array(x), np.array(x_with_nan)
>>> z, z_with_nan = pd.Series(x), pd.Series(x_with_nan)
>>> y
array([ 8. ,  1. ,  2.5, 4. , 28. ])
>>> y_with_nan
array([ 8. ,  1. ,  2.5,  nan,  4. , 28. ])
>>> z
0     8.0
1     1.0
2     2.5
3     4.0
4    28.0
dtype: float64
>>> z_with_nan
0     8.0
1     1.0
2     2.5
3     NaN
4     4.0
5    28.0
dtype: float64
59

Bạn có thể nhận được độ lệch chuẩn với NumPy theo cùng một cách. Bạn có thể sử dụng hàm

>>> y, y_with_nan = np.array(x), np.array(x_with_nan)
>>> z, z_with_nan = pd.Series(x), pd.Series(x_with_nan)
>>> y
array([ 8. ,  1. ,  2.5, 4. , 28. ])
>>> y_with_nan
array([ 8. ,  1. ,  2.5,  nan,  4. , 28. ])
>>> z
0     8.0
1     1.0
2     2.5
3     4.0
4    28.0
dtype: float64
>>> z_with_nan
0     8.0
1     1.0
2     2.5
3     NaN
4     4.0
5    28.0
dtype: float64
60 và phương pháp tương ứng
>>> y, y_with_nan = np.array(x), np.array(x_with_nan)
>>> z, z_with_nan = pd.Series(x), pd.Series(x_with_nan)
>>> y
array([ 8. ,  1. ,  2.5, 4. , 28. ])
>>> y_with_nan
array([ 8. ,  1. ,  2.5,  nan,  4. , 28. ])
>>> z
0     8.0
1     1.0
2     2.5
3     4.0
4    28.0
dtype: float64
>>> z_with_nan
0     8.0
1     1.0
2     2.5
3     NaN
4     4.0
5    28.0
dtype: float64
61 để tính độ lệch chuẩn. Nếu có các giá trị
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
36 trong tập dữ liệu, thì chúng sẽ trả về
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
36. Để bỏ qua các giá trị
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
36, bạn nên sử dụng
>>> y, y_with_nan = np.array(x), np.array(x_with_nan)
>>> z, z_with_nan = pd.Series(x), pd.Series(x_with_nan)
>>> y
array([ 8. ,  1. ,  2.5, 4. , 28. ])
>>> y_with_nan
array([ 8. ,  1. ,  2.5,  nan,  4. , 28. ])
>>> z
0     8.0
1     1.0
2     2.5
3     4.0
4    28.0
dtype: float64
>>> z_with_nan
0     8.0
1     1.0
2     2.5
3     NaN
4     4.0
5    28.0
dtype: float64
65. Bạn sử dụng
>>> y, y_with_nan = np.array(x), np.array(x_with_nan)
>>> z, z_with_nan = pd.Series(x), pd.Series(x_with_nan)
>>> y
array([ 8. ,  1. ,  2.5, 4. , 28. ])
>>> y_with_nan
array([ 8. ,  1. ,  2.5,  nan,  4. , 28. ])
>>> z
0     8.0
1     1.0
2     2.5
3     4.0
4    28.0
dtype: float64
>>> z_with_nan
0     8.0
1     1.0
2     2.5
3     NaN
4     4.0
5    28.0
dtype: float64
60,
>>> y, y_with_nan = np.array(x), np.array(x_with_nan)
>>> z, z_with_nan = pd.Series(x), pd.Series(x_with_nan)
>>> y
array([ 8. ,  1. ,  2.5, 4. , 28. ])
>>> y_with_nan
array([ 8. ,  1. ,  2.5,  nan,  4. , 28. ])
>>> z
0     8.0
1     1.0
2     2.5
3     4.0
4    28.0
dtype: float64
>>> z_with_nan
0     8.0
1     1.0
2     2.5
3     NaN
4     4.0
5    28.0
dtype: float64
61 và
>>> y, y_with_nan = np.array(x), np.array(x_with_nan)
>>> z, z_with_nan = pd.Series(x), pd.Series(x_with_nan)
>>> y
array([ 8. ,  1. ,  2.5, 4. , 28. ])
>>> y_with_nan
array([ 8. ,  1. ,  2.5,  nan,  4. , 28. ])
>>> z
0     8.0
1     1.0
2     2.5
3     4.0
4    28.0
dtype: float64
>>> z_with_nan
0     8.0
1     1.0
2     2.5
3     NaN
4     4.0
5    28.0
dtype: float64
68 từ NumPy như bạn sẽ sử dụng
>>> y, y_with_nan = np.array(x), np.array(x_with_nan)
>>> z, z_with_nan = pd.Series(x), pd.Series(x_with_nan)
>>> y
array([ 8. ,  1. ,  2.5, 4. , 28. ])
>>> y_with_nan
array([ 8. ,  1. ,  2.5,  nan,  4. , 28. ])
>>> z
0     8.0
1     1.0
2     2.5
3     4.0
4    28.0
dtype: float64
>>> z_with_nan
0     8.0
1     1.0
2     2.5
3     NaN
4     4.0
5    28.0
dtype: float64
69,
>>> y, y_with_nan = np.array(x), np.array(x_with_nan)
>>> z, z_with_nan = pd.Series(x), pd.Series(x_with_nan)
>>> y
array([ 8. ,  1. ,  2.5, 4. , 28. ])
>>> y_with_nan
array([ 8. ,  1. ,  2.5,  nan,  4. , 28. ])
>>> z
0     8.0
1     1.0
2     2.5
3     4.0
4    28.0
dtype: float64
>>> z_with_nan
0     8.0
1     1.0
2     2.5
3     NaN
4     4.0
5    28.0
dtype: float64
28 và
>>> y, y_with_nan = np.array(x), np.array(x_with_nan)
>>> z, z_with_nan = pd.Series(x), pd.Series(x_with_nan)
>>> y
array([ 8. ,  1. ,  2.5, 4. , 28. ])
>>> y_with_nan
array([ 8. ,  1. ,  2.5,  nan,  4. , 28. ])
>>> z
0     8.0
1     1.0
2     2.5
3     4.0
4    28.0
dtype: float64
>>> z_with_nan
0     8.0
1     1.0
2     2.5
3     NaN
4     4.0
5    28.0
dtype: float64
71

>>>

>>> mean_ = sum(x) / len(x)
>>> mean_
8.7
9

Đừng quên thiết lập bậc tự do của delta là

>>> y, y_with_nan = np.array(x), np.array(x_with_nan)
>>> z, z_with_nan = pd.Series(x), pd.Series(x_with_nan)
>>> y
array([ 8. ,  1. ,  2.5, 4. , 28. ])
>>> y_with_nan
array([ 8. ,  1. ,  2.5,  nan,  4. , 28. ])
>>> z
0     8.0
1     1.0
2     2.5
3     4.0
4    28.0
dtype: float64
>>> z_with_nan
0     8.0
1     1.0
2     2.5
3     NaN
4     4.0
5    28.0
dtype: float64
30

Các đối tượng

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
48 cũng có phương thức
>>> y, y_with_nan = np.array(x), np.array(x_with_nan)
>>> z, z_with_nan = pd.Series(x), pd.Series(x_with_nan)
>>> y
array([ 8. ,  1. ,  2.5, 4. , 28. ])
>>> y_with_nan
array([ 8. ,  1. ,  2.5,  nan,  4. , 28. ])
>>> z
0     8.0
1     1.0
2     2.5
3     4.0
4    28.0
dtype: float64
>>> z_with_nan
0     8.0
1     1.0
2     2.5
3     NaN
4     4.0
5    28.0
dtype: float64
61 bỏ qua
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
36 theo mặc định

>>>

>>> mean_ = statistics.mean(x)
>>> mean_
8.7
>>> mean_ = statistics.fmean(x)
>>> mean_
8.7
0

Tham số

>>> y, y_with_nan = np.array(x), np.array(x_with_nan)
>>> z, z_with_nan = pd.Series(x), pd.Series(x_with_nan)
>>> y
array([ 8. ,  1. ,  2.5, 4. , 28. ])
>>> y_with_nan
array([ 8. ,  1. ,  2.5,  nan,  4. , 28. ])
>>> z
0     8.0
1     1.0
2     2.5
3     4.0
4    28.0
dtype: float64
>>> z_with_nan
0     8.0
1     1.0
2     2.5
3     NaN
4     4.0
5    28.0
dtype: float64
45 mặc định là
>>> y, y_with_nan = np.array(x), np.array(x_with_nan)
>>> z, z_with_nan = pd.Series(x), pd.Series(x_with_nan)
>>> y
array([ 8. ,  1. ,  2.5, 4. , 28. ])
>>> y_with_nan
array([ 8. ,  1. ,  2.5,  nan,  4. , 28. ])
>>> z
0     8.0
1     1.0
2     2.5
3     4.0
4    28.0
dtype: float64
>>> z_with_nan
0     8.0
1     1.0
2     2.5
3     NaN
4     4.0
5    28.0
dtype: float64
30 nên bạn có thể bỏ qua. Một lần nữa, nếu bạn muốn xử lý các giá trị
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
36 theo cách khác, thì hãy áp dụng tham số
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
90

Độ lệch chuẩn dân số đề cập đến toàn bộ dân số. Đó là căn bậc hai dương của phương sai dân số. Bạn có thể tính toán nó giống như độ lệch chuẩn mẫu, với sự khác biệt sau

  • Tìm căn bậc hai của phương sai dân số trong triển khai Python thuần túy
  • Sử dụng thay vì
    >>> y, y_with_nan = np.array(x), np.array(x_with_nan)
    >>> z, z_with_nan = pd.Series(x), pd.Series(x_with_nan)
    >>> y
    array([ 8. ,  1. ,  2.5, 4. , 28. ])
    >>> y_with_nan
    array([ 8. ,  1. ,  2.5,  nan,  4. , 28. ])
    >>> z
    0     8.0
    1     1.0
    2     2.5
    3     4.0
    4    28.0
    dtype: float64
    >>> z_with_nan
    0     8.0
    1     1.0
    2     2.5
    3     NaN
    4     4.0
    5    28.0
    dtype: float64
    
    56
  • Chỉ định tham số
    >>> y, y_with_nan = np.array(x), np.array(x_with_nan)
    >>> z, z_with_nan = pd.Series(x), pd.Series(x_with_nan)
    >>> y
    array([ 8. ,  1. ,  2.5, 4. , 28. ])
    >>> y_with_nan
    array([ 8. ,  1. ,  2.5,  nan,  4. , 28. ])
    >>> z
    0     8.0
    1     1.0
    2     2.5
    3     4.0
    4    28.0
    dtype: float64
    >>> z_with_nan
    0     8.0
    1     1.0
    2     2.5
    3     NaN
    4     4.0
    5    28.0
    dtype: float64
    
    53 nếu bạn sử dụng NumPy hoặc Pandas. Trong NumPy, bạn có thể bỏ qua
    >>> y, y_with_nan = np.array(x), np.array(x_with_nan)
    >>> z, z_with_nan = pd.Series(x), pd.Series(x_with_nan)
    >>> y
    array([ 8. ,  1. ,  2.5, 4. , 28. ])
    >>> y_with_nan
    array([ 8. ,  1. ,  2.5,  nan,  4. , 28. ])
    >>> z
    0     8.0
    1     1.0
    2     2.5
    3     4.0
    4    28.0
    dtype: float64
    >>> z_with_nan
    0     8.0
    1     1.0
    2     2.5
    3     NaN
    4     4.0
    5    28.0
    dtype: float64
    
    45 vì giá trị mặc định của nó là
    >>> math.isnan(np.nan), np.isnan(math.nan)
    (True, True)
    >>> math.isnan(y_with_nan[3]), np.isnan(y_with_nan[3])
    (True, True)
    
    08

Như bạn có thể thấy, bạn có thể xác định độ lệch chuẩn trong Python, NumPy và Pandas gần giống như cách bạn xác định phương sai. Bạn sử dụng các hàm và phương thức khác nhau nhưng tương tự nhau với cùng các đối số

độ lệch

Độ lệch của mẫu đo lường sự bất đối xứng của mẫu dữ liệu

Có một số định nghĩa toán học về độ lệch. Một biểu thức phổ biến để tính độ lệch của tập dữ liệu 𝑥 với 𝑛 phần tử là (𝑛² / ((𝑛 − 1)(𝑛 − 2))) (Σᵢ(𝑥ᵢ − mean(𝑥))³ / (𝑛𝑠³)). Một biểu thức đơn giản hơn là Σᵢ(𝑥ᵢ − mean(𝑥))³ 𝑛 / ((𝑛 − 1)(𝑛 − 2)𝑠³), trong đó 𝑖 = 1, 2, …, 𝑛 và mean(𝑥) là trung bình mẫu của . Độ lệch được xác định như thế này được gọi là hệ số mômen tiêu chuẩn Fisher-Pearson đã điều chỉnh

Hình trước cho thấy hai bộ dữ liệu khá đối xứng. Nói cách khác, điểm của họ có khoảng cách tương tự từ giá trị trung bình. Ngược lại, hình ảnh sau đây minh họa hai bộ bất đối xứng

Cách sử dụng descr trong python

Bộ đầu tiên được biểu thị bằng các chấm màu xanh lá cây và bộ thứ hai có các chấm màu trắng. Thông thường, các giá trị độ lệch âm cho biết rằng có một đuôi chiếm ưu thế ở phía bên trái mà bạn có thể nhìn thấy với tập hợp đầu tiên. Các giá trị độ lệch dương tương ứng với phần đuôi dài hơn hoặc mập hơn ở phía bên phải mà bạn có thể thấy trong tập hợp thứ hai. Nếu độ lệch gần bằng 0 (ví dụ: giữa −0. 5 và 0. 5), thì bộ dữ liệu được coi là khá đối xứng

Khi bạn đã tính toán kích thước của tập dữ liệu

>>> y, y_with_nan = np.array(x), np.array(x_with_nan)
>>> z, z_with_nan = pd.Series(x), pd.Series(x_with_nan)
>>> y
array([ 8. ,  1. ,  2.5, 4. , 28. ])
>>> y_with_nan
array([ 8. ,  1. ,  2.5,  nan,  4. , 28. ])
>>> z
0     8.0
1     1.0
2     2.5
3     4.0
4    28.0
dtype: float64
>>> z_with_nan
0     8.0
1     1.0
2     2.5
3     NaN
4     4.0
5    28.0
dtype: float64
50, giá trị trung bình của mẫu là
>>> y, y_with_nan = np.array(x), np.array(x_with_nan)
>>> z, z_with_nan = pd.Series(x), pd.Series(x_with_nan)
>>> y
array([ 8. ,  1. ,  2.5, 4. , 28. ])
>>> y_with_nan
array([ 8. ,  1. ,  2.5,  nan,  4. , 28. ])
>>> z
0     8.0
1     1.0
2     2.5
3     4.0
4    28.0
dtype: float64
>>> z_with_nan
0     8.0
1     1.0
2     2.5
3     NaN
4     4.0
5    28.0
dtype: float64
86 và độ lệch chuẩn
>>> y, y_with_nan = np.array(x), np.array(x_with_nan)
>>> z, z_with_nan = pd.Series(x), pd.Series(x_with_nan)
>>> y
array([ 8. ,  1. ,  2.5, 4. , 28. ])
>>> y_with_nan
array([ 8. ,  1. ,  2.5,  nan,  4. , 28. ])
>>> z
0     8.0
1     1.0
2     2.5
3     4.0
4    28.0
dtype: float64
>>> z_with_nan
0     8.0
1     1.0
2     2.5
3     NaN
4     4.0
5    28.0
dtype: float64
87, bạn có thể nhận được độ lệch của mẫu bằng Python thuần túy

>>>

>>> mean_ = statistics.mean(x)
>>> mean_
8.7
>>> mean_ = statistics.fmean(x)
>>> mean_
8.7
1

Độ lệch là dương, vì vậy

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
33 có đuôi bên phải

Bạn cũng có thể tính toán độ lệch của mẫu với

>>> y, y_with_nan = np.array(x), np.array(x_with_nan)
>>> z, z_with_nan = pd.Series(x), pd.Series(x_with_nan)
>>> y
array([ 8. ,  1. ,  2.5, 4. , 28. ])
>>> y_with_nan
array([ 8. ,  1. ,  2.5,  nan,  4. , 28. ])
>>> z
0     8.0
1     1.0
2     2.5
3     4.0
4    28.0
dtype: float64
>>> z_with_nan
0     8.0
1     1.0
2     2.5
3     NaN
4     4.0
5    28.0
dtype: float64
89

>>>

>>> mean_ = statistics.mean(x)
>>> mean_
8.7
>>> mean_ = statistics.fmean(x)
>>> mean_
8.7
2

Kết quả thu được giống như triển khai Python thuần túy. Tham số

>>> y, y_with_nan = np.array(x), np.array(x_with_nan)
>>> z, z_with_nan = pd.Series(x), pd.Series(x_with_nan)
>>> y
array([ 8. ,  1. ,  2.5, 4. , 28. ])
>>> y_with_nan
array([ 8. ,  1. ,  2.5,  nan,  4. , 28. ])
>>> z
0     8.0
1     1.0
2     2.5
3     4.0
4    28.0
dtype: float64
>>> z_with_nan
0     8.0
1     1.0
2     2.5
3     NaN
4     4.0
5    28.0
dtype: float64
90 được đặt thành
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
44 để cho phép hiệu chỉnh độ lệch thống kê. Tham số tùy chọn
>>> y, y_with_nan = np.array(x), np.array(x_with_nan)
>>> z, z_with_nan = pd.Series(x), pd.Series(x_with_nan)
>>> y
array([ 8. ,  1. ,  2.5, 4. , 28. ])
>>> y_with_nan
array([ 8. ,  1. ,  2.5,  nan,  4. , 28. ])
>>> z
0     8.0
1     1.0
2     2.5
3     4.0
4    28.0
dtype: float64
>>> z_with_nan
0     8.0
1     1.0
2     2.5
3     NaN
4     4.0
5    28.0
dtype: float64
07 có thể nhận các giá trị
>>> y, y_with_nan = np.array(x), np.array(x_with_nan)
>>> z, z_with_nan = pd.Series(x), pd.Series(x_with_nan)
>>> y
array([ 8. ,  1. ,  2.5, 4. , 28. ])
>>> y_with_nan
array([ 8. ,  1. ,  2.5,  nan,  4. , 28. ])
>>> z
0     8.0
1     1.0
2     2.5
3     4.0
4    28.0
dtype: float64
>>> z_with_nan
0     8.0
1     1.0
2     2.5
3     NaN
4     4.0
5    28.0
dtype: float64
08,
>>> y, y_with_nan = np.array(x), np.array(x_with_nan)
>>> z, z_with_nan = pd.Series(x), pd.Series(x_with_nan)
>>> y
array([ 8. ,  1. ,  2.5, 4. , 28. ])
>>> y_with_nan
array([ 8. ,  1. ,  2.5,  nan,  4. , 28. ])
>>> z
0     8.0
1     1.0
2     2.5
3     4.0
4    28.0
dtype: float64
>>> z_with_nan
0     8.0
1     1.0
2     2.5
3     NaN
4     4.0
5    28.0
dtype: float64
09 hoặc
>>> y, y_with_nan = np.array(x), np.array(x_with_nan)
>>> z, z_with_nan = pd.Series(x), pd.Series(x_with_nan)
>>> y
array([ 8. ,  1. ,  2.5, 4. , 28. ])
>>> y_with_nan
array([ 8. ,  1. ,  2.5,  nan,  4. , 28. ])
>>> z
0     8.0
1     1.0
2     2.5
3     4.0
4    28.0
dtype: float64
>>> z_with_nan
0     8.0
1     1.0
2     2.5
3     NaN
4     4.0
5    28.0
dtype: float64
10. Nó cho phép bạn kiểm soát cách bạn sẽ xử lý các giá trị
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
36

Các đối tượng của Pandas

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
15 có phương thức
>>> y, y_with_nan = np.array(x), np.array(x_with_nan)
>>> z, z_with_nan = pd.Series(x), pd.Series(x_with_nan)
>>> y
array([ 8. ,  1. ,  2.5, 4. , 28. ])
>>> y_with_nan
array([ 8. ,  1. ,  2.5,  nan,  4. , 28. ])
>>> z
0     8.0
1     1.0
2     2.5
3     4.0
4    28.0
dtype: float64
>>> z_with_nan
0     8.0
1     1.0
2     2.5
3     NaN
4     4.0
5    28.0
dtype: float64
98 cũng trả về độ lệch của tập dữ liệu

>>>

>>> mean_ = statistics.mean(x)
>>> mean_
8.7
>>> mean_ = statistics.fmean(x)
>>> mean_
8.7
3

Giống như các phương pháp khác, theo mặc định,

>>> y, y_with_nan = np.array(x), np.array(x_with_nan)
>>> z, z_with_nan = pd.Series(x), pd.Series(x_with_nan)
>>> y
array([ 8. ,  1. ,  2.5, 4. , 28. ])
>>> y_with_nan
array([ 8. ,  1. ,  2.5,  nan,  4. , 28. ])
>>> z
0     8.0
1     1.0
2     2.5
3     4.0
4    28.0
dtype: float64
>>> z_with_nan
0     8.0
1     1.0
2     2.5
3     NaN
4     4.0
5    28.0
dtype: float64
98 bỏ qua các giá trị
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
36, vì giá trị mặc định của tham số tùy chọn
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
90

phần trăm

𝑝 phần trăm mẫu là phần tử trong tập dữ liệu sao cho 𝑝% phần tử trong tập dữ liệu nhỏ hơn hoặc bằng giá trị đó. Ngoài ra, (100 − 𝑝)% phần tử lớn hơn hoặc bằng giá trị đó. Nếu có hai phần tử như vậy trong tập dữ liệu, thì phân vị 𝑝 mẫu là trung bình cộng của chúng. Mỗi tập dữ liệu có ba phần tư, là phần trăm chia tập dữ liệu thành bốn phần

  • Phần tư thứ nhất là phần trăm thứ 25 của mẫu. Nó phân chia khoảng 25% các mục nhỏ nhất từ ​​​​phần còn lại của tập dữ liệu
  • Phần tư thứ hai là phần trăm thứ 50 của mẫu hoặc trung vị. Khoảng 25% các mục nằm giữa phần tư thứ nhất và thứ hai và 25% khác giữa phần tư thứ hai và thứ ba
  • Phần tư thứ ba là phần trăm thứ 75 của mẫu. Nó phân chia khoảng 25% các mục lớn nhất từ ​​​​phần còn lại của bộ dữ liệu

Mỗi phần có số lượng vật phẩm xấp xỉ nhau. Nếu bạn muốn chia dữ liệu của mình thành nhiều khoảng thời gian, thì bạn có thể sử dụng

>>>

>>> mean_ = statistics.mean(x)
>>> mean_
8.7
>>> mean_ = statistics.fmean(x)
>>> mean_
8.7
4

Trong ví dụ này,

>>> mean_ = sum(x) / len(x)
>>> mean_
8.7
03 là trung vị của
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
33, trong khi
>>> mean_ = sum(x) / len(x)
>>> mean_
8.7
05 và
>>> mean_ = sum(x) / len(x)
>>> mean_
8.7
06 lần lượt là phân vị thứ 25 và 75 của mẫu. Tham số
>>> y, y_with_nan = np.array(x), np.array(x_with_nan)
>>> z, z_with_nan = pd.Series(x), pd.Series(x_with_nan)
>>> y
array([ 8. ,  1. ,  2.5, 4. , 28. ])
>>> y_with_nan
array([ 8. ,  1. ,  2.5,  nan,  4. , 28. ])
>>> z
0     8.0
1     1.0
2     2.5
3     4.0
4    28.0
dtype: float64
>>> z_with_nan
0     8.0
1     1.0
2     2.5
3     NaN
4     4.0
5    28.0
dtype: float64
50 xác định số phần trăm xác suất bằng nhau thu được và
>>> mean_ = sum(x) / len(x)
>>> mean_
8.7
08 xác định cách tính toán chúng

Ghi chú.

>>> mean_ = sum(x) / len(x)
>>> mean_
8.7
02 được giới thiệu trong Python 3. 8

Bạn cũng có thể sử dụng

>>> mean_ = sum(x) / len(x)
>>> mean_
8.7
10 để xác định bất kỳ phần trăm mẫu nào trong tập dữ liệu của mình. Ví dụ: đây là cách bạn có thể tìm phần trăm thứ 5 và 95

>>>

>>> mean_ = statistics.mean(x)
>>> mean_
8.7
>>> mean_ = statistics.fmean(x)
>>> mean_
8.7
5

>>> mean_ = sum(x) / len(x)
>>> mean_
8.7
11 có một số đối số. Bạn phải cung cấp tập dữ liệu làm đối số đầu tiên và giá trị phần trăm làm đối số thứ hai. Tập dữ liệu có thể ở dạng mảng NumPy, danh sách, bộ dữ liệu hoặc cấu trúc dữ liệu tương tự. Phần trăm có thể là một số từ 0 đến 100 như trong ví dụ trên, nhưng nó cũng có thể là một dãy số

>>>

>>> mean_ = statistics.mean(x)
>>> mean_
8.7
>>> mean_ = statistics.fmean(x)
>>> mean_
8.7
6

Mã này tính toán tất cả các phân vị thứ 25, 50 và 75 cùng một lúc. Nếu giá trị phần trăm là một chuỗi, thì

>>> mean_ = sum(x) / len(x)
>>> mean_
8.7
11 trả về một mảng NumPy với các kết quả. Câu lệnh đầu tiên trả về mảng tứ phân vị. Câu lệnh thứ hai trả về giá trị trung bình, vì vậy bạn có thể xác nhận rằng nó bằng với phân vị thứ 50, là
>>> mean_ = sum(x) / len(x)
>>> mean_
8.7
03

Nếu bạn muốn bỏ qua các giá trị

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
36, hãy sử dụng
>>> mean_ = sum(x) / len(x)
>>> mean_
8.7
15 để thay thế

>>>

>>> mean_ = statistics.mean(x)
>>> mean_
8.7
>>> mean_ = statistics.fmean(x)
>>> mean_
8.7
7

Đó là cách bạn có thể tránh các giá trị

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
36

NumPy cũng cung cấp cho bạn chức năng tương tự trong

>>> mean_ = sum(x) / len(x)
>>> mean_
8.7
17 và
>>> mean_ = sum(x) / len(x)
>>> mean_
8.7
18. Nếu bạn sử dụng chúng, thì bạn sẽ cần cung cấp các giá trị lượng tử dưới dạng các số từ 0 đến 1 thay vì phần trăm

>>>

>>> mean_ = statistics.mean(x)
>>> mean_
8.7
>>> mean_ = statistics.fmean(x)
>>> mean_
8.7
8

Các kết quả giống như trong các ví dụ trước, nhưng ở đây các đối số của bạn nằm trong khoảng từ 0 đến 1. Nói cách khác, bạn đã vượt qua

>>> mean_ = sum(x) / len(x)
>>> mean_
8.7
19 thay vì
>>> mean_ = sum(x) / len(x)
>>> mean_
8.7
20 và
>>> mean_ = sum(x) / len(x)
>>> mean_
8.7
21 thay vì
>>> mean_ = sum(x) / len(x)
>>> mean_
8.7
22

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
48 đối tượng có phương thức
>>> mean_ = sum(x) / len(x)
>>> mean_
8.7
24

>>>

>>> mean_ = statistics.mean(x)
>>> mean_
8.7
>>> mean_ = statistics.fmean(x)
>>> mean_
8.7
9

>>> mean_ = sum(x) / len(x)
>>> mean_
8.7
24 cũng cần bạn cung cấp giá trị lượng tử làm đối số. Giá trị này có thể là một số từ 0 đến 1 hoặc một dãy số. Trong trường hợp đầu tiên,
>>> mean_ = sum(x) / len(x)
>>> mean_
8.7
24 trả về một số vô hướng. Trong trường hợp thứ hai, nó trả về một
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
15 mới giữ kết quả

Các dãy

Phạm vi dữ liệu là sự khác biệt giữa phần tử tối đa và tối thiểu trong tập dữ liệu. Bạn có thể lấy nó bằng chức năng

>>> mean_ = sum(x) / len(x)
>>> mean_
8.7
28

>>>

>>> mean_ = statistics.mean(x_with_nan)
>>> mean_
nan
>>> mean_ = statistics.fmean(x_with_nan)
>>> mean_
nan
0

Hàm này trả về

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
36 nếu có giá trị
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
36 trong mảng NumPy của bạn. Nếu bạn sử dụng một đối tượng Pandas
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
15, thì nó sẽ trả về một số

Ngoài ra, bạn có thể sử dụng các hàm và phương thức Python, NumPy hoặc Pandas tích hợp để tính toán cực đại và cực tiểu của các chuỗi

  • và từ thư viện chuẩn Python
  • >>> mean_ = sum(x) / len(x)
    >>> mean_
    8.7
    
    34 và
    >>> mean_ = sum(x) / len(x)
    >>> mean_
    8.7
    
    35 từ NumPy
  • >>> mean_ = sum(x) / len(x)
    >>> mean_
    8.7
    
    36 và
    >>> mean_ = sum(x) / len(x)
    >>> mean_
    8.7
    
    37 từ NumPy để bỏ qua giá trị
    >>> x = [8.0, 1, 2.5, 4, 28.0]
    >>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
    >>> x
    [8.0, 1, 2.5, 4, 28.0]
    >>> x_with_nan
    [8.0, 1, 2.5, nan, 4, 28.0]
    
    36
  • >>> mean_ = sum(x) / len(x)
    >>> mean_
    8.7
    
    39 và
    >>> mean_ = sum(x) / len(x)
    >>> mean_
    8.7
    
    40 từ NumPy
  • >>> mean_ = sum(x) / len(x)
    >>> mean_
    8.7
    
    39 và
    >>> mean_ = sum(x) / len(x)
    >>> mean_
    8.7
    
    40 từ Pandas để bỏ qua giá trị
    >>> x = [8.0, 1, 2.5, 4, 28.0]
    >>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
    >>> x
    [8.0, 1, 2.5, 4, 28.0]
    >>> x_with_nan
    [8.0, 1, 2.5, nan, 4, 28.0]
    
    36 theo mặc định

Dưới đây là một số ví dụ về cách bạn sẽ sử dụng các thói quen này

>>>

>>> mean_ = statistics.mean(x_with_nan)
>>> mean_
nan
>>> mean_ = statistics.fmean(x_with_nan)
>>> mean_
nan
1

Đó là cách bạn có được phạm vi dữ liệu

Phạm vi liên vùng là sự khác biệt giữa phần tư thứ nhất và thứ ba. Khi bạn tính toán các phần tư, bạn có thể lấy sự khác biệt của chúng

>>>

>>> mean_ = statistics.mean(x_with_nan)
>>> mean_
nan
>>> mean_ = statistics.fmean(x_with_nan)
>>> mean_
nan
2

Lưu ý rằng bạn truy cập các giá trị trong một đối tượng Pandas

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
15 với các nhãn
>>> mean_ = sum(x) / len(x)
>>> mean_
8.7
45 và
>>> mean_ = sum(x) / len(x)
>>> mean_
8.7
46

Loại bỏ các quảng cáo

Tóm tắt thống kê mô tả

SciPy và Pandas cung cấp các quy trình hữu ích để nhanh chóng nhận được số liệu thống kê mô tả với một lệnh gọi hàm hoặc phương thức duy nhất. Bạn có thể sử dụng. số liệu thống kê. mô tả() như thế này

>>>

>>> mean_ = statistics.mean(x_with_nan)
>>> mean_
nan
>>> mean_ = statistics.fmean(x_with_nan)
>>> mean_
nan
3

Bạn phải cung cấp tập dữ liệu làm đối số đầu tiên. Đối số có thể là một mảng NumPy, danh sách, bộ dữ liệu hoặc cấu trúc dữ liệu tương tự. Bạn có thể bỏ qua

>>> y, y_with_nan = np.array(x), np.array(x_with_nan)
>>> z, z_with_nan = pd.Series(x), pd.Series(x_with_nan)
>>> y
array([ 8. ,  1. ,  2.5, 4. , 28. ])
>>> y_with_nan
array([ 8. ,  1. ,  2.5,  nan,  4. , 28. ])
>>> z
0     8.0
1     1.0
2     2.5
3     4.0
4    28.0
dtype: float64
>>> z_with_nan
0     8.0
1     1.0
2     2.5
3     NaN
4     4.0
5    28.0
dtype: float64
29 vì nó là giá trị mặc định và chỉ quan trọng khi bạn tính phương sai. Bạn có thể vượt qua
>>> mean_ = sum(x) / len(x)
>>> mean_
8.7
48 để buộc sửa độ lệch và độ nhọn cho sai lệch thống kê

Ghi chú. Tham số tùy chọn

>>> y, y_with_nan = np.array(x), np.array(x_with_nan)
>>> z, z_with_nan = pd.Series(x), pd.Series(x_with_nan)
>>> y
array([ 8. ,  1. ,  2.5, 4. , 28. ])
>>> y_with_nan
array([ 8. ,  1. ,  2.5,  nan,  4. , 28. ])
>>> z
0     8.0
1     1.0
2     2.5
3     4.0
4    28.0
dtype: float64
>>> z_with_nan
0     8.0
1     1.0
2     2.5
3     NaN
4     4.0
5    28.0
dtype: float64
07 có thể nhận các giá trị
>>> y, y_with_nan = np.array(x), np.array(x_with_nan)
>>> z, z_with_nan = pd.Series(x), pd.Series(x_with_nan)
>>> y
array([ 8. ,  1. ,  2.5, 4. , 28. ])
>>> y_with_nan
array([ 8. ,  1. ,  2.5,  nan,  4. , 28. ])
>>> z
0     8.0
1     1.0
2     2.5
3     4.0
4    28.0
dtype: float64
>>> z_with_nan
0     8.0
1     1.0
2     2.5
3     NaN
4     4.0
5    28.0
dtype: float64
08 (mặc định),
>>> y, y_with_nan = np.array(x), np.array(x_with_nan)
>>> z, z_with_nan = pd.Series(x), pd.Series(x_with_nan)
>>> y
array([ 8. ,  1. ,  2.5, 4. , 28. ])
>>> y_with_nan
array([ 8. ,  1. ,  2.5,  nan,  4. , 28. ])
>>> z
0     8.0
1     1.0
2     2.5
3     4.0
4    28.0
dtype: float64
>>> z_with_nan
0     8.0
1     1.0
2     2.5
3     NaN
4     4.0
5    28.0
dtype: float64
09 (lỗi) hoặc
>>> y, y_with_nan = np.array(x), np.array(x_with_nan)
>>> z, z_with_nan = pd.Series(x), pd.Series(x_with_nan)
>>> y
array([ 8. ,  1. ,  2.5, 4. , 28. ])
>>> y_with_nan
array([ 8. ,  1. ,  2.5,  nan,  4. , 28. ])
>>> z
0     8.0
1     1.0
2     2.5
3     4.0
4    28.0
dtype: float64
>>> z_with_nan
0     8.0
1     1.0
2     2.5
3     NaN
4     4.0
5    28.0
dtype: float64
10. Tham số này cho phép bạn kiểm soát điều gì đang xảy ra khi có các giá trị
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
36

>>> mean_ = sum(x) / len(x)
>>> mean_
8.7
54 trả về một đối tượng chứa các số liệu thống kê mô tả sau

  • >>> mean_ = sum(x) / len(x)
    >>> mean_
    8.7
    
    55. số lượng quan sát hoặc thành phần trong tập dữ liệu của bạn
  • >>> mean_ = sum(x) / len(x)
    >>> mean_
    8.7
    
    56. bộ dữ liệu với các giá trị tối thiểu và tối đa của tập dữ liệu của bạn
  • >>> mean_ = sum(x) / len(x)
    >>> mean_
    8.7
    
    57. giá trị trung bình của tập dữ liệu của bạn
  • >>> mean_ = sum(x) / len(x)
    >>> mean_
    8.7
    
    58. phương sai của tập dữ liệu của bạn
  • >>> mean_ = sum(x) / len(x)
    >>> mean_
    8.7
    
    59. độ lệch của tập dữ liệu của bạn
  • >>> mean_ = sum(x) / len(x)
    >>> mean_
    8.7
    
    60. độ nhọn của tập dữ liệu của bạn

Bạn có thể truy cập các giá trị cụ thể bằng ký hiệu dấu chấm

>>>

>>> mean_ = statistics.mean(x_with_nan)
>>> mean_
nan
>>> mean_ = statistics.fmean(x_with_nan)
>>> mean_
nan
4

Với SciPy, bạn chỉ cần một lệnh gọi hàm để có được bản tóm tắt thống kê mô tả cho tập dữ liệu của mình

Pandas có chức năng tương tự, nếu không muốn nói là tốt hơn.

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
15 đối tượng có phương thức
>>> mean_ = sum(x) / len(x)
>>> mean_
8.7
62

>>>

>>> mean_ = statistics.mean(x_with_nan)
>>> mean_
nan
>>> mean_ = statistics.fmean(x_with_nan)
>>> mean_
nan
5

Nó trả về một

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
15 mới chứa thông tin sau

  • >>> mean_ = sum(x) / len(x)
    >>> mean_
    8.7
    
    64. số lượng phần tử trong tập dữ liệu của bạn
  • >>> mean_ = sum(x) / len(x)
    >>> mean_
    8.7
    
    57. giá trị trung bình của tập dữ liệu của bạn
  • >>> mean_ = sum(x) / len(x)
    >>> mean_
    8.7
    
    66. độ lệch chuẩn của tập dữ liệu của bạn
  • >>> mean_ = sum(x) / len(x)
    >>> mean_
    8.7
    
    67 và
    >>> mean_ = sum(x) / len(x)
    >>> mean_
    8.7
    
    68. giá trị tối thiểu và tối đa của tập dữ liệu của bạn
  • >>> mean_ = sum(x) / len(x)
    >>> mean_
    8.7
    
    69,
    >>> mean_ = sum(x) / len(x)
    >>> mean_
    8.7
    
    70 và
    >>> mean_ = sum(x) / len(x)
    >>> mean_
    8.7
    
    71. các phần tư của tập dữ liệu của bạn

Nếu bạn muốn đối tượng

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
15 kết quả chứa các phần trăm khác, thì bạn nên chỉ định giá trị của tham số tùy chọn
>>> mean_ = sum(x) / len(x)
>>> mean_
8.7
73. Bạn có thể truy cập từng mục của
>>> mean_ = sum(x) / len(x)
>>> mean_
8.7
74 cùng với nhãn của nó

>>>

>>> mean_ = statistics.mean(x_with_nan)
>>> mean_
nan
>>> mean_ = statistics.fmean(x_with_nan)
>>> mean_
nan
6

Đó là cách bạn có thể nhận được số liệu thống kê mô tả về một đối tượng

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
15 bằng một lệnh gọi phương thức duy nhất bằng cách sử dụng Pandas

Các biện pháp tương quan giữa các cặp dữ liệu

Bạn sẽ thường xuyên cần kiểm tra mối quan hệ giữa các phần tử tương ứng của hai biến trong tập dữ liệu. Giả sử có hai biến, 𝑥 và 𝑦, với số phần tử bằng nhau, 𝑛. Đặt 𝑥₁ từ 𝑥 tương ứng với 𝑦₁ từ 𝑦, 𝑥₂ từ 𝑥 đến 𝑦₂ từ 𝑦, v.v. Khi đó bạn có thể nói rằng có 𝑛 cặp phần tử tương ứng. (𝑥₁, 𝑦₁), (𝑥₂, 𝑦₂), v.v.

Bạn sẽ thấy các biện pháp tương quan giữa các cặp dữ liệu sau đây

  • Tương quan dương tồn tại khi giá trị lớn hơn của 𝑥 tương ứng với giá trị lớn hơn của 𝑦 và ngược lại
  • Tương quan nghịch tồn tại khi giá trị lớn hơn của 𝑥 tương ứng với giá trị nhỏ hơn của 𝑦 và ngược lại
  • Tương quan yếu hoặc không tồn tại nếu không có mối quan hệ rõ ràng như vậy

Hình dưới đây cho thấy các ví dụ về mối tương quan tiêu cực, yếu và tích cực

Cách sử dụng descr trong python

Biểu đồ bên trái với các chấm đỏ cho thấy mối tương quan tiêu cực. Biểu đồ ở giữa với các chấm màu xanh lá cây cho thấy mối tương quan yếu. Cuối cùng, biểu đồ bên phải với các chấm màu xanh cho thấy mối tương quan tích cực

Ghi chú. Có một điều quan trọng mà bạn phải luôn ghi nhớ khi làm việc với mối tương quan giữa một cặp biến, đó là mối tương quan đó không phải là thước đo hay chỉ báo về quan hệ nhân quả, mà chỉ là mối liên hệ.

Hai thống kê đo lường mối tương quan giữa các tập dữ liệu là hiệp phương sai và hệ số tương quan. Hãy xác định một số dữ liệu để làm việc với các biện pháp này. Bạn sẽ tạo hai danh sách Python và sử dụng chúng để lấy các mảng và Pandas NumPy tương ứng

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
15

>>>

>>> mean_ = statistics.mean(x_with_nan)
>>> mean_
nan
>>> mean_ = statistics.fmean(x_with_nan)
>>> mean_
nan
7

Bây giờ bạn đã có hai biến, bạn có thể bắt đầu khám phá mối quan hệ giữa chúng

hiệp phương sai

Hiệp phương sai mẫu là thước đo định lượng độ mạnh và hướng của mối quan hệ giữa một cặp biến

  • Nếu tương quan dương thì hiệp phương sai cũng dương. Một mối quan hệ mạnh mẽ hơn tương ứng với một giá trị cao hơn của hiệp phương sai
  • Nếu tương quan âm, thì hiệp phương sai cũng âm. Mối quan hệ mạnh hơn tương ứng với giá trị thấp hơn (hoặc cao hơn tuyệt đối) của hiệp phương sai
  • Nếu mối tương quan yếu, thì hiệp phương sai gần bằng không

Hiệp phương sai của các biến 𝑥 và 𝑦 được định nghĩa về mặt toán học là 𝑠ˣʸ = Σᵢ (𝑥ᵢ − mean(𝑥)) (𝑦ᵢ − mean(𝑦)) / (𝑛 − 1), trong đó 𝑖 = 1, 2, …, 𝑛, nghĩa là . Theo đó, hiệp phương sai của hai biến giống hệt nhau thực sự là phương sai. 𝑠ˣˣ = Σᵢ(𝑥ᵢ − mean(𝑥))² / (𝑛 − 1) = (𝑠ˣ)² và 𝑠ʸʸ = Σᵢ(𝑦ᵢ − mean(𝑦))² / (𝑛 − 1) = (𝑠ʸ)²

Đây là cách bạn có thể tính toán hiệp phương sai trong Python thuần túy

>>>

>>> mean_ = statistics.mean(x_with_nan)
>>> mean_
nan
>>> mean_ = statistics.fmean(x_with_nan)
>>> mean_
nan
8

Đầu tiên, bạn phải tìm giá trị trung bình của

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
33 và
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
51. Sau đó, bạn áp dụng công thức toán học cho hiệp phương sai

NumPy có chức năng

>>> mean_ = sum(x) / len(x)
>>> mean_
8.7
79 trả về ma trận hiệp phương sai

>>>

>>> mean_ = statistics.mean(x_with_nan)
>>> mean_
nan
>>> mean_ = statistics.fmean(x_with_nan)
>>> mean_
nan
9

Lưu ý rằng

>>> mean_ = sum(x) / len(x)
>>> mean_
8.7
79 có các tham số tùy chọn
>>> y, y_with_nan = np.array(x), np.array(x_with_nan)
>>> z, z_with_nan = pd.Series(x), pd.Series(x_with_nan)
>>> y
array([ 8. ,  1. ,  2.5, 4. , 28. ])
>>> y_with_nan
array([ 8. ,  1. ,  2.5,  nan,  4. , 28. ])
>>> z
0     8.0
1     1.0
2     2.5
3     4.0
4    28.0
dtype: float64
>>> z_with_nan
0     8.0
1     1.0
2     2.5
3     NaN
4     4.0
5    28.0
dtype: float64
90, mặc định là
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
44 và
>>> y, y_with_nan = np.array(x), np.array(x_with_nan)
>>> z, z_with_nan = pd.Series(x), pd.Series(x_with_nan)
>>> y
array([ 8. ,  1. ,  2.5, 4. , 28. ])
>>> y_with_nan
array([ 8. ,  1. ,  2.5,  nan,  4. , 28. ])
>>> z
0     8.0
1     1.0
2     2.5
3     4.0
4    28.0
dtype: float64
>>> z_with_nan
0     8.0
1     1.0
2     2.5
3     NaN
4     4.0
5    28.0
dtype: float64
45, mặc định là
>>> mean_ = sum(x) / len(x)
>>> mean_
8.7
84. Các giá trị mặc định của chúng phù hợp để lấy ma trận hiệp phương sai mẫu. The upper-left element of the covariance matrix is the covariance of
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
33 and
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
33, or the variance of
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
33. Similarly, the lower-right element is the covariance of
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
51 and
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
51, or the variance of
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
51. You can check to see that this is true

>>>

>>> mean_ = np.mean(y)
>>> mean_
8.7
0

As you can see, the variances of

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
33 and
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
51 are equal to
>>> mean_ = sum(x) / len(x)
>>> mean_
8.7
93 and
>>> mean_ = sum(x) / len(x)
>>> mean_
8.7
94, respectively

The other two elements of the covariance matrix are equal and represent the actual covariance between

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
33 and
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
51

>>>

>>> mean_ = np.mean(y)
>>> mean_
8.7
1

You’ve obtained the same value of the covariance with

>>> mean_ = sum(x) / len(x)
>>> mean_
8.7
97 as with pure Python

Pandas

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
15 have the method
>>> mean_ = sum(x) / len(x)
>>> mean_
8.7
99 that you can use to calculate the covariance

>>>

>>> mean_ = np.mean(y)
>>> mean_
8.7
2

Here, you call

>>> mean_ = sum(x) / len(x)
>>> mean_
8.7
99 on one
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
15 object and pass the other object as the first argument

Correlation Coefficient

The correlation coefficient, or Pearson product-moment correlation coefficient, is denoted by the symbol 𝑟. Hệ số là một phép đo khác về mối tương quan giữa dữ liệu. You can think of it as a standardized covariance. Here are some important facts about it

  • The value 𝑟 > 0 indicates positive correlation
  • The value 𝑟 < 0 indicates negative correlation
  • The value r = 1 is the maximum possible value of 𝑟. Nó tương ứng với một mối quan hệ tuyến tính tích cực hoàn hảo giữa các biến
  • Giá trị r = −1 là giá trị nhỏ nhất có thể có của 𝑟. Nó tương ứng với một mối quan hệ tuyến tính tiêu cực hoàn hảo giữa các biến
  • Giá trị r ≈ 0, hoặc khi 𝑟 quanh 0, có nghĩa là mối tương quan giữa các biến yếu

Công thức toán học của hệ số tương quan là 𝑟 = 𝑠ˣʸ / (𝑠ˣ𝑠ʸ) trong đó 𝑠ˣ và 𝑠ʸ lần lượt là độ lệch chuẩn của 𝑥 và 𝑦. Nếu bạn có phương tiện (

>>> mean_ = statistics.mean(x)
>>> mean_
8.7
>>> mean_ = statistics.fmean(x)
>>> mean_
8.7
02 và
>>> mean_ = statistics.mean(x)
>>> mean_
8.7
>>> mean_ = statistics.fmean(x)
>>> mean_
8.7
03) và độ lệch chuẩn (
>>> mean_ = statistics.mean(x)
>>> mean_
8.7
>>> mean_ = statistics.fmean(x)
>>> mean_
8.7
04,
>>> mean_ = statistics.mean(x)
>>> mean_
8.7
>>> mean_ = statistics.fmean(x)
>>> mean_
8.7
05) cho bộ dữ liệu
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
33 và
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
51, cũng như hiệp phương sai của chúng
>>> mean_ = statistics.mean(x)
>>> mean_
8.7
>>> mean_ = statistics.fmean(x)
>>> mean_
8.7
08, thì bạn có thể tính hệ số tương quan bằng Python thuần túy

>>>

>>> mean_ = np.mean(y)
>>> mean_
8.7
3

Bạn có biến

>>> mean_ = statistics.mean(x)
>>> mean_
8.7
>>> mean_ = statistics.fmean(x)
>>> mean_
8.7
09 đại diện cho hệ số tương quan

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
14 có quy trình
>>> mean_ = statistics.mean(x)
>>> mean_
8.7
>>> mean_ = statistics.fmean(x)
>>> mean_
8.7
11 tính toán hệ số tương quan và giá trị 𝑝

>>>

>>> mean_ = np.mean(y)
>>> mean_
8.7
4

>>> mean_ = statistics.mean(x)
>>> mean_
8.7
>>> mean_ = statistics.fmean(x)
>>> mean_
8.7
11 trả về một bộ có hai số. Cái đầu tiên là 𝑟 và cái thứ hai là giá trị 𝑝

Tương tự như trường hợp của ma trận hiệp phương sai, bạn có thể áp dụng

>>> mean_ = statistics.mean(x)
>>> mean_
8.7
>>> mean_ = statistics.fmean(x)
>>> mean_
8.7
13 với
>>> mean_ = statistics.mean(x)
>>> mean_
8.7
>>> mean_ = statistics.fmean(x)
>>> mean_
8.7
14 và
>>> mean_ = statistics.mean(x)
>>> mean_
8.7
>>> mean_ = statistics.fmean(x)
>>> mean_
8.7
15 làm đối số và nhận được ma trận hệ số tương quan

>>>

>>> mean_ = np.mean(y)
>>> mean_
8.7
5

Phần tử phía trên bên trái là hệ số tương quan giữa

>>> mean_ = statistics.mean(x)
>>> mean_
8.7
>>> mean_ = statistics.fmean(x)
>>> mean_
8.7
14 và
>>> mean_ = statistics.mean(x)
>>> mean_
8.7
>>> mean_ = statistics.fmean(x)
>>> mean_
8.7
14. Phần tử phía dưới bên phải là hệ số tương quan giữa
>>> mean_ = statistics.mean(x)
>>> mean_
8.7
>>> mean_ = statistics.fmean(x)
>>> mean_
8.7
15 và
>>> mean_ = statistics.mean(x)
>>> mean_
8.7
>>> mean_ = statistics.fmean(x)
>>> mean_
8.7
15. Giá trị của chúng bằng với
>>> mean_ = statistics.mean(x)
>>> mean_
8.7
>>> mean_ = statistics.fmean(x)
>>> mean_
8.7
20. Hai yếu tố còn lại bằng nhau và biểu thị hệ số tương quan thực tế giữa
>>> mean_ = statistics.mean(x)
>>> mean_
8.7
>>> mean_ = statistics.fmean(x)
>>> mean_
8.7
14 và
>>> mean_ = statistics.mean(x)
>>> mean_
8.7
>>> mean_ = statistics.fmean(x)
>>> mean_
8.7
15

>>>

>>> mean_ = np.mean(y)
>>> mean_
8.7
6

Tất nhiên, kết quả cũng giống như với Python thuần túy và

>>> mean_ = statistics.mean(x)
>>> mean_
8.7
>>> mean_ = statistics.fmean(x)
>>> mean_
8.7
11

Bạn có thể lấy hệ số tương quan với

>>> mean_ = statistics.mean(x)
>>> mean_
8.7
>>> mean_ = statistics.fmean(x)
>>> mean_
8.7
24

>>>

>>> mean_ = np.mean(y)
>>> mean_
8.7
7

>>> mean_ = statistics.mean(x)
>>> mean_
8.7
>>> mean_ = statistics.fmean(x)
>>> mean_
8.7
25 lấy
>>> mean_ = statistics.mean(x)
>>> mean_
8.7
>>> mean_ = statistics.fmean(x)
>>> mean_
8.7
14 và
>>> mean_ = statistics.mean(x)
>>> mean_
8.7
>>> mean_ = statistics.fmean(x)
>>> mean_
8.7
15, thực hiện hồi quy tuyến tính và trả về kết quả.
>>> mean_ = statistics.mean(x)
>>> mean_
8.7
>>> mean_ = statistics.fmean(x)
>>> mean_
8.7
28 và
>>> mean_ = statistics.mean(x)
>>> mean_
8.7
>>> mean_ = statistics.fmean(x)
>>> mean_
8.7
29 xác định phương trình của đường hồi quy, trong khi
>>> mean_ = statistics.mean(x)
>>> mean_
8.7
>>> mean_ = statistics.fmean(x)
>>> mean_
8.7
30 là hệ số tương quan. Để truy cập các giá trị cụ thể từ kết quả của
>>> mean_ = statistics.mean(x)
>>> mean_
8.7
>>> mean_ = statistics.fmean(x)
>>> mean_
8.7
25, bao gồm cả hệ số tương quan, hãy sử dụng ký hiệu dấu chấm

>>>

>>> mean_ = np.mean(y)
>>> mean_
8.7
8

Đó là cách bạn có thể thực hiện hồi quy tuyến tính và thu được hệ số tương quan

Pandas

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
15 có phương pháp
>>> mean_ = statistics.mean(x)
>>> mean_
8.7
>>> mean_ = statistics.fmean(x)
>>> mean_
8.7
33 để tính hệ số tương quan

>>>

>>> mean_ = np.mean(y)
>>> mean_
8.7
9

Bạn nên gọi

>>> mean_ = statistics.mean(x)
>>> mean_
8.7
>>> mean_ = statistics.fmean(x)
>>> mean_
8.7
33 trên một đối tượng
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
15 và chuyển đối tượng kia làm đối số đầu tiên

Loại bỏ các quảng cáo

Làm việc với dữ liệu 2D

Các nhà thống kê thường làm việc với dữ liệu 2D. Dưới đây là một số ví dụ về định dạng dữ liệu 2D

  • bảng cơ sở dữ liệu
  • tệp CSV
  • Bảng tính Excel, Calc và Google

NumPy và SciPy cung cấp phương tiện toàn diện để làm việc với dữ liệu 2D. Pandas có lớp

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
16 đặc biệt để xử lý dữ liệu được dán nhãn 2D

trục

Bắt đầu bằng cách tạo một mảng 2D NumPy

>>>

>>> mean_ = y.mean()
>>> mean_
8.7
0

Bây giờ bạn có tập dữ liệu 2D mà bạn sẽ sử dụng trong phần này. Bạn có thể áp dụng các hàm và phương thức thống kê Python cho nó giống như cách bạn làm với dữ liệu 1D

>>>

>>> mean_ = y.mean()
>>> mean_
8.7
1

Như bạn có thể thấy, bạn nhận được số liệu thống kê (như giá trị trung bình, trung vị hoặc phương sai) trên tất cả dữ liệu trong mảng

>>> mean_ = statistics.mean(x)
>>> mean_
8.7
>>> mean_ = statistics.fmean(x)
>>> mean_
8.7
37. Đôi khi, hành vi này là những gì bạn muốn, nhưng trong một số trường hợp, bạn sẽ muốn các số lượng này được tính cho từng hàng hoặc cột trong mảng 2D của mình

Các chức năng và phương pháp bạn đã sử dụng cho đến nay có một tham số tùy chọn được gọi là

>>> mean_ = statistics.mean(x)
>>> mean_
8.7
>>> mean_ = statistics.fmean(x)
>>> mean_
8.7
38, điều cần thiết để xử lý dữ liệu 2D.
>>> mean_ = statistics.mean(x)
>>> mean_
8.7
>>> mean_ = statistics.fmean(x)
>>> mean_
8.7
38 có thể nhận bất kỳ giá trị nào sau đây

  • >>> mean_ = statistics.mean(x)
    >>> mean_
    8.7
    >>> mean_ = statistics.fmean(x)
    >>> mean_
    8.7
    
    40 nói để tính toán số liệu thống kê trên tất cả dữ liệu trong mảng. Các ví dụ trên hoạt động như thế này. Hành vi này thường là mặc định trong NumPy
  • >>> mean_ = statistics.mean(x)
    >>> mean_
    8.7
    >>> mean_ = statistics.fmean(x)
    >>> mean_
    8.7
    
    41 nói để tính số liệu thống kê trên tất cả các hàng, tức là cho từng cột của mảng. Hành vi này thường là mặc định cho các chức năng thống kê SciPy
  • >>> mean_ = statistics.mean(x)
    >>> mean_
    8.7
    >>> mean_ = statistics.fmean(x)
    >>> mean_
    8.7
    
    42 nói để tính số liệu thống kê trên tất cả các cột, tức là cho mỗi hàng của mảng

Hãy xem

>>> mean_ = statistics.mean(x)
>>> mean_
8.7
>>> mean_ = statistics.fmean(x)
>>> mean_
8.7
41 hoạt động với
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
72

>>>

>>> mean_ = y.mean()
>>> mean_
8.7
2

Hai câu lệnh trên trả về các mảng NumPy mới với giá trị trung bình cho mỗi cột là

>>> mean_ = statistics.mean(x)
>>> mean_
8.7
>>> mean_ = statistics.fmean(x)
>>> mean_
8.7
37. Trong ví dụ này, giá trị trung bình của cột đầu tiên là
>>> mean_ = statistics.mean(x)
>>> mean_
8.7
>>> mean_ = statistics.fmean(x)
>>> mean_
8.7
46. Cột thứ hai có giá trị trung bình là
>>> mean_ = statistics.mean(x)
>>> mean_
8.7
>>> mean_ = statistics.fmean(x)
>>> mean_
8.7
47, trong khi cột thứ ba có giá trị trung bình là
>>> mean_ = statistics.mean(x)
>>> mean_
8.7
>>> mean_ = statistics.fmean(x)
>>> mean_
8.7
48

Nếu bạn cung cấp

>>> mean_ = statistics.mean(x)
>>> mean_
8.7
>>> mean_ = statistics.fmean(x)
>>> mean_
8.7
42 đến
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
60, thì bạn sẽ nhận được kết quả cho mỗi hàng

>>>

>>> mean_ = y.mean()
>>> mean_
8.7
3

Như bạn có thể thấy, hàng đầu tiên của

>>> mean_ = statistics.mean(x)
>>> mean_
8.7
>>> mean_ = statistics.fmean(x)
>>> mean_
8.7
37 có nghĩa là
>>> mean_ = statistics.mean(x)
>>> mean_
8.7
>>> mean_ = statistics.fmean(x)
>>> mean_
8.7
20, hàng thứ hai là
>>> mean_ = statistics.mean(x)
>>> mean_
8.7
>>> mean_ = statistics.fmean(x)
>>> mean_
8.7
53, v.v.

Ghi chú. Bạn có thể mở rộng các quy tắc này sang mảng nhiều chiều, nhưng điều đó nằm ngoài phạm vi của hướng dẫn này. Hãy tự mình đi sâu vào chủ đề này

Tham số

>>> mean_ = statistics.mean(x)
>>> mean_
8.7
>>> mean_ = statistics.fmean(x)
>>> mean_
8.7
38 hoạt động tương tự với các hàm và phương thức NumPy khác

>>>

>>> mean_ = y.mean()
>>> mean_
8.7
4

Bạn đã có trung vị và biến thể mẫu cho tất cả các cột (

>>> mean_ = statistics.mean(x)
>>> mean_
8.7
>>> mean_ = statistics.fmean(x)
>>> mean_
8.7
41) và hàng (
>>> mean_ = statistics.mean(x)
>>> mean_
8.7
>>> mean_ = statistics.fmean(x)
>>> mean_
8.7
42) của mảng
>>> mean_ = statistics.mean(x)
>>> mean_
8.7
>>> mean_ = statistics.fmean(x)
>>> mean_
8.7
37

Điều này rất giống khi bạn làm việc với các hàm thống kê SciPy. Nhưng hãy nhớ rằng trong trường hợp này, giá trị mặc định cho

>>> mean_ = statistics.mean(x)
>>> mean_
8.7
>>> mean_ = statistics.fmean(x)
>>> mean_
8.7
38 là
>>> math.isnan(np.nan), np.isnan(math.nan)
(True, True)
>>> math.isnan(y_with_nan[3]), np.isnan(y_with_nan[3])
(True, True)
08

>>>

>>> mean_ = y.mean()
>>> mean_
8.7
5

Nếu bạn bỏ qua

>>> mean_ = statistics.mean(x)
>>> mean_
8.7
>>> mean_ = statistics.fmean(x)
>>> mean_
8.7
38 hoặc cung cấp
>>> mean_ = statistics.mean(x)
>>> mean_
8.7
>>> mean_ = statistics.fmean(x)
>>> mean_
8.7
41, thì bạn sẽ nhận được kết quả trên tất cả các hàng, tức là cho từng cột. Ví dụ: cột đầu tiên của
>>> mean_ = statistics.mean(x)
>>> mean_
8.7
>>> mean_ = statistics.fmean(x)
>>> mean_
8.7
37 có giá trị trung bình hình học là
>>> mean_ = statistics.mean(x)
>>> mean_
8.7
>>> mean_ = statistics.fmean(x)
>>> mean_
8.7
63, v.v.

Nếu bạn chỉ định

>>> mean_ = statistics.mean(x)
>>> mean_
8.7
>>> mean_ = statistics.fmean(x)
>>> mean_
8.7
42, thì bạn sẽ nhận được các phép tính trên tất cả các cột, tức là cho mỗi hàng

>>>

>>> mean_ = y.mean()
>>> mean_
8.7
6

Trong ví dụ này, giá trị trung bình hình học của hàng đầu tiên của

>>> mean_ = statistics.mean(x)
>>> mean_
8.7
>>> mean_ = statistics.fmean(x)
>>> mean_
8.7
37 là
>>> mean_ = statistics.mean(x)
>>> mean_
8.7
>>> mean_ = statistics.fmean(x)
>>> mean_
8.7
20. Đối với hàng thứ hai, nó xấp xỉ
>>> mean_ = statistics.mean(x)
>>> mean_
8.7
>>> mean_ = statistics.fmean(x)
>>> mean_
8.7
67, v.v.

Nếu bạn muốn thống kê cho toàn bộ tập dữ liệu, thì bạn phải cung cấp

>>> mean_ = statistics.mean(x)
>>> mean_
8.7
>>> mean_ = statistics.fmean(x)
>>> mean_
8.7
40

>>>

>>> mean_ = y.mean()
>>> mean_
8.7
7

Giá trị trung bình hình học của tất cả các mục trong mảng

>>> mean_ = statistics.mean(x)
>>> mean_
8.7
>>> mean_ = statistics.fmean(x)
>>> mean_
8.7
37 là khoảng
>>> mean_ = statistics.mean(x)
>>> mean_
8.7
>>> mean_ = statistics.fmean(x)
>>> mean_
8.7
70

Bạn có thể nhận được bản tóm tắt thống kê Python bằng một lệnh gọi hàm duy nhất cho dữ liệu 2D với scipy. số liệu thống kê. diễn tả(). Nó hoạt động tương tự như mảng 1D, nhưng bạn phải cẩn thận với tham số

>>> mean_ = statistics.mean(x)
>>> mean_
8.7
>>> mean_ = statistics.fmean(x)
>>> mean_
8.7
38

>>>

>>> mean_ = y.mean()
>>> mean_
8.7
8

Khi bạn cung cấp

>>> mean_ = statistics.mean(x)
>>> mean_
8.7
>>> mean_ = statistics.fmean(x)
>>> mean_
8.7
40, bạn sẽ nhận được bản tóm tắt trên tất cả dữ liệu. Hầu hết các kết quả là vô hướng. If you set
>>> mean_ = statistics.mean(x)
>>> mean_
8.7
>>> mean_ = statistics.fmean(x)
>>> mean_
8.7
41 or omit it, then the return value is the summary for each column. So, most results are the arrays with the same number of items as the number of columns. If you set
>>> mean_ = statistics.mean(x)
>>> mean_
8.7
>>> mean_ = statistics.fmean(x)
>>> mean_
8.7
42, then
>>> mean_ = sum(x) / len(x)
>>> mean_
8.7
54 returns the summary for all rows

You can get a particular value from the summary with dot notation

>>>

>>> mean_ = y.mean()
>>> mean_
8.7
9

That’s how you can see a statistics summary for a 2D array with a single function call

Loại bỏ các quảng cáo

DataFrames

The class

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
16 is one of the fundamental Pandas data types. It’s very comfortable to work with because it has labels for rows and columns. Use the array
>>> mean_ = statistics.mean(x)
>>> mean_
8.7
>>> mean_ = statistics.fmean(x)
>>> mean_
8.7
37 and create a
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
16

>>>

>>> np.mean(y_with_nan)
nan
>>> y_with_nan.mean()
nan
0

In practice, the names of the columns matter and should be descriptive. The names of the rows are sometimes specified automatically as

>>> math.isnan(np.nan), np.isnan(math.nan)
(True, True)
>>> math.isnan(y_with_nan[3]), np.isnan(y_with_nan[3])
(True, True)
08,
>>> y, y_with_nan = np.array(x), np.array(x_with_nan)
>>> z, z_with_nan = pd.Series(x), pd.Series(x_with_nan)
>>> y
array([ 8. ,  1. ,  2.5, 4. , 28. ])
>>> y_with_nan
array([ 8. ,  1. ,  2.5,  nan,  4. , 28. ])
>>> z
0     8.0
1     1.0
2     2.5
3     4.0
4    28.0
dtype: float64
>>> z_with_nan
0     8.0
1     1.0
2     2.5
3     NaN
4     4.0
5    28.0
dtype: float64
30, and so on. You can specify them explicitly with the parameter
>>> mean_ = statistics.mean(x)
>>> mean_
8.7
>>> mean_ = statistics.fmean(x)
>>> mean_
8.7
81, though you’re free to omit
>>> mean_ = statistics.mean(x)
>>> mean_
8.7
>>> mean_ = statistics.fmean(x)
>>> mean_
8.7
81 if you like

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
16 methods are very similar to
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
15 methods, though the behavior is different. If you call Python statistics methods without arguments, then the
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
16 will return the results for each column

>>>

>>> np.mean(y_with_nan)
nan
>>> y_with_nan.mean()
nan
1

What you get is a new

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
15 that holds the results. In this case, the
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
15 holds the mean and variance for each column. If you want the results for each row, then just specify the parameter
>>> mean_ = statistics.mean(x)
>>> mean_
8.7
>>> mean_ = statistics.fmean(x)
>>> mean_
8.7
42

>>>

>>> np.mean(y_with_nan)
nan
>>> y_with_nan.mean()
nan
2

The result is a

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
15 with the desired quantity for each row. Các nhãn
>>> mean_ = statistics.mean(x)
>>> mean_
8.7
>>> mean_ = statistics.fmean(x)
>>> mean_
8.7
90,
>>> mean_ = statistics.mean(x)
>>> mean_
8.7
>>> mean_ = statistics.fmean(x)
>>> mean_
8.7
91, v.v. đề cập đến các hàng khác nhau

You can isolate each column of a

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
16 like this

>>>

>>> np.mean(y_with_nan)
nan
>>> y_with_nan.mean()
nan
3

Now, you have the column

>>> mean_ = statistics.mean(x)
>>> mean_
8.7
>>> mean_ = statistics.fmean(x)
>>> mean_
8.7
93 in the form of a
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
15 object and you can apply the appropriate methods

>>>

>>> np.mean(y_with_nan)
nan
>>> y_with_nan.mean()
nan
4

That’s how you can obtain the statistics for a single column

Sometimes, you might want to use a

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
16 as a NumPy array and apply some function to it. It’s possible to get all data from a
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
16 with
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
22 or
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
23

>>>

>>> np.mean(y_with_nan)
nan
>>> y_with_nan.mean()
nan
5

>>> mean_ = statistics.mean(x)
>>> mean_
8.7
>>> mean_ = statistics.fmean(x)
>>> mean_
8.7
99 and
>>> mean_ = statistics.mean(x_with_nan)
>>> mean_
nan
>>> mean_ = statistics.fmean(x_with_nan)
>>> mean_
nan
00 give you a NumPy array with all items from the
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
16 without row and column labels. Note that
>>> mean_ = statistics.mean(x_with_nan)
>>> mean_
nan
>>> mean_ = statistics.fmean(x_with_nan)
>>> mean_
nan
00 is more flexible because you can specify the data type of items and whether you want to use the existing data or copy it

Like

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
15,
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
16 objects have the method
>>> mean_ = sum(x) / len(x)
>>> mean_
8.7
62 that returns another
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
16 with the statistics summary for all columns

>>>

>>> np.mean(y_with_nan)
nan
>>> y_with_nan.mean()
nan
6

The summary contains the following results

  • >>> mean_ = sum(x) / len(x)
    >>> mean_
    8.7
    
    64. the number of items in each column
  • >>> mean_ = sum(x) / len(x)
    >>> mean_
    8.7
    
    57. the mean of each column
  • >>> mean_ = sum(x) / len(x)
    >>> mean_
    8.7
    
    66. the standard deviation
  • >>> mean_ = sum(x) / len(x)
    >>> mean_
    8.7
    
    67 and
    >>> mean_ = sum(x) / len(x)
    >>> mean_
    8.7
    
    68. the minimum and maximum values
  • >>> mean_ = sum(x) / len(x)
    >>> mean_
    8.7
    
    69,
    >>> mean_ = sum(x) / len(x)
    >>> mean_
    8.7
    
    70, and
    >>> mean_ = sum(x) / len(x)
    >>> mean_
    8.7
    
    71. the percentiles

If you want the resulting

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
16 object to contain other percentiles, then you should specify the value of the optional parameter
>>> mean_ = sum(x) / len(x)
>>> mean_
8.7
73

You can access each item of the summary like this

>>>

>>> np.mean(y_with_nan)
nan
>>> y_with_nan.mean()
nan
7

That’s how you can get descriptive Python statistics in one

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
15 object with a single Pandas method call

Loại bỏ các quảng cáo

Visualizing Data

In addition to calculating the numerical quantities like mean, median, or variance, you can use visual methods to present, describe, and summarize data. In this section, you’ll learn how to present your data visually using the following graphs

  • Box plots
  • Histograms
  • Pie charts
  • biểu đồ thanh
  • X-Y plots
  • Heatmaps

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
32 is a very convenient and widely-used library, though it’s not the only Python library available for this purpose. You can import it like this

>>>

>>> np.mean(y_with_nan)
nan
>>> y_with_nan.mean()
nan
8

Now, you have

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
32 imported and ready for use. The second statement sets the style for your plots by choosing colors, line widths, and other stylistic elements. You’re free to omit these if you’re satisfied with the default style settings

Note. Phần này tập trung vào việc trình bày dữ liệu và giữ các cài đặt phong cách ở mức tối thiểu. You’ll see links to the official documentation for used routines from

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
32, so you can explore the options that you won’t see here

You’ll use pseudo-random numbers to get data to work with. You don’t need knowledge on random numbers to be able to understand this section. You just need some arbitrary numbers, and pseudo-random generators are a convenient tool to get them. The module

>>> mean_ = statistics.mean(x_with_nan)
>>> mean_
nan
>>> mean_ = statistics.fmean(x_with_nan)
>>> mean_
nan
21 generates arrays of pseudo-random numbers

  • Normally distributed numbers are generated with
    >>> mean_ = statistics.mean(x_with_nan)
    >>> mean_
    nan
    >>> mean_ = statistics.fmean(x_with_nan)
    >>> mean_
    nan
    
    22
  • Uniformly distributed integers are generated with
    >>> mean_ = statistics.mean(x_with_nan)
    >>> mean_
    nan
    >>> mean_ = statistics.fmean(x_with_nan)
    >>> mean_
    nan
    
    23

NumPy 1. 17 introduced another for pseudo-random number generation. To learn more about it, check the official documentation

Box Plots

The box plot is an excellent tool to visually represent descriptive statistics of a given dataset. It can show the range, interquartile range, median, mode, outliers, and all quartiles. First, create some data to represent with a box plot

>>>

>>> np.mean(y_with_nan)
nan
>>> y_with_nan.mean()
nan
9

The first statement sets the seed of the NumPy random number generator with

>>> mean_ = statistics.mean(x_with_nan)
>>> mean_
nan
>>> mean_ = statistics.fmean(x_with_nan)
>>> mean_
nan
24, so you can get the same results each time you run the code. You don’t have to set the seed, but if you don’t specify this value, then you’ll get different results each time

The other statements generate three NumPy arrays with normally distributed pseudo-random numbers.

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
33 refers to the array with 1000 items,
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
51 has 100, and
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
54 contains 10 items. Now that you have the data to work with, you can apply
>>> mean_ = statistics.mean(x_with_nan)
>>> mean_
nan
>>> mean_ = statistics.fmean(x_with_nan)
>>> mean_
nan
28 to get the box plot

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
00

The parameters of

>>> mean_ = statistics.mean(x_with_nan)
>>> mean_
nan
>>> mean_ = statistics.fmean(x_with_nan)
>>> mean_
nan
28 define the following

  • >>> x = [8.0, 1, 2.5, 4, 28.0]
    >>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
    >>> x
    [8.0, 1, 2.5, 4, 28.0]
    >>> x_with_nan
    [8.0, 1, 2.5, nan, 4, 28.0]
    
    33 is your data
  • >>> mean_ = statistics.mean(x_with_nan)
    >>> mean_
    nan
    >>> mean_ = statistics.fmean(x_with_nan)
    >>> mean_
    nan
    
    31 sets the plot orientation to horizontal when
    >>> x = [8.0, 1, 2.5, 4, 28.0]
    >>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
    >>> x
    [8.0, 1, 2.5, 4, 28.0]
    >>> x_with_nan
    [8.0, 1, 2.5, nan, 4, 28.0]
    
    44. The default orientation is vertical
  • >>> mean_ = statistics.mean(x_with_nan)
    >>> mean_
    nan
    >>> mean_ = statistics.fmean(x_with_nan)
    >>> mean_
    nan
    
    33 shows the mean of your data when
    >>> mean_ = statistics.mean(x_with_nan)
    >>> mean_
    nan
    >>> mean_ = statistics.fmean(x_with_nan)
    >>> mean_
    nan
    
    34
  • >>> mean_ = statistics.mean(x_with_nan)
    >>> mean_
    nan
    >>> mean_ = statistics.fmean(x_with_nan)
    >>> mean_
    nan
    
    35 represents the mean as a line when
    >>> mean_ = statistics.mean(x_with_nan)
    >>> mean_
    nan
    >>> mean_ = statistics.fmean(x_with_nan)
    >>> mean_
    nan
    
    34. The default representation is a point
  • >>> mean_ = statistics.mean(x_with_nan)
    >>> mean_
    nan
    >>> mean_ = statistics.fmean(x_with_nan)
    >>> mean_
    nan
    
    37. the labels of your data
  • >>> mean_ = statistics.mean(x_with_nan)
    >>> mean_
    nan
    >>> mean_ = statistics.fmean(x_with_nan)
    >>> mean_
    nan
    
    38 determines how to draw the graph
  • >>> mean_ = statistics.mean(x_with_nan)
    >>> mean_
    nan
    >>> mean_ = statistics.fmean(x_with_nan)
    >>> mean_
    nan
    
    39 denotes the properties of the line representing the median
  • >>> mean_ = statistics.mean(x_with_nan)
    >>> mean_
    nan
    >>> mean_ = statistics.fmean(x_with_nan)
    >>> mean_
    nan
    
    40 indicates the properties of the line or dot representing the mean

There are other parameters, but their analysis is beyond the scope of this tutorial

The code above produces an image like this

Cách sử dụng descr trong python

You can see three box plots. Each of them corresponds to a single dataset (

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
33,
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
51, or
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
54) and show the following

  • The mean is the red dashed line
  • The median is the purple line
  • The first quartile is the left edge of the blue rectangle
  • The third quartile is the right edge of the blue rectangle
  • The interquartile range is the length of the blue rectangle
  • The range contains everything from left to right
  • The outliers are the dots to the left and right

A box plot can show so much information in a single figure

Loại bỏ các quảng cáo

Histograms

Histograms are particularly useful when there are a large number of unique values in a dataset. The histogram divides the values from a sorted dataset into intervals, also called bins. Often, all bins are of equal width, though this doesn’t have to be the case. The values of the lower and upper bounds of a bin are called the bin edges

The frequency is a single value that corresponds to each bin. It’s the number of elements of the dataset with the values between the edges of the bin. Theo quy ước, tất cả các ngăn trừ ngăn ngoài cùng bên phải đều được mở một nửa. They include the values equal to the lower bounds, but exclude the values equal to the upper bounds. The rightmost bin is closed because it includes both bounds. If you divide a dataset with the bin edges 0, 5, 10, and 15, then there are three bins

  1. The first and leftmost bin contains the values greater than or equal to 0 and less than 5
  2. The second bin contains the values greater than or equal to 5 and less than 10
  3. The third and rightmost bin contains the values greater than or equal to 10 and less than or equal to 15

The function

>>> mean_ = statistics.mean(x_with_nan)
>>> mean_
nan
>>> mean_ = statistics.fmean(x_with_nan)
>>> mean_
nan
44 is a convenient way to get data for histograms

>>>

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
01

It takes the array with your data and the number (or edges) of bins and returns two NumPy arrays

  1. >>> mean_ = statistics.mean(x_with_nan)
    >>> mean_
    nan
    >>> mean_ = statistics.fmean(x_with_nan)
    >>> mean_
    nan
    
    45 contains the frequency or the number of items corresponding to each bin
  2. >>> mean_ = statistics.mean(x_with_nan)
    >>> mean_
    nan
    >>> mean_ = statistics.fmean(x_with_nan)
    >>> mean_
    nan
    
    46 contains the edges or bounds of the bin

What

>>> mean_ = statistics.mean(x_with_nan)
>>> mean_
nan
>>> mean_ = statistics.fmean(x_with_nan)
>>> mean_
nan
47 calculates,
>>> mean_ = statistics.mean(x_with_nan)
>>> mean_
nan
>>> mean_ = statistics.fmean(x_with_nan)
>>> mean_
nan
48 can show graphically

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
02

The first argument of

>>> mean_ = statistics.mean(x_with_nan)
>>> mean_
nan
>>> mean_ = statistics.fmean(x_with_nan)
>>> mean_
nan
48 is the sequence with your data. The second argument defines the edges of the bins. Thứ ba vô hiệu hóa tùy chọn tạo biểu đồ với các giá trị tích lũy. The code above produces a figure like this

Cách sử dụng descr trong python

You can see the bin edges on the horizontal axis and the frequencies on the vertical axis

It’s possible to get the histogram with the cumulative numbers of items if you provide the argument

>>> mean_ = statistics.mean(x_with_nan)
>>> mean_
nan
>>> mean_ = statistics.fmean(x_with_nan)
>>> mean_
nan
50 to
>>> mean_ = statistics.mean(x_with_nan)
>>> mean_
nan
>>> mean_ = statistics.fmean(x_with_nan)
>>> mean_
nan
48

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
03

This code yields the following figure

Cách sử dụng descr trong python

It shows the histogram with the cumulative values. The frequency of the first and leftmost bin is the number of items in this bin. The frequency of the second bin is the sum of the numbers of items in the first and second bins. The other bins follow this same pattern. Finally, the frequency of the last and rightmost bin is the total number of items in the dataset (in this case, 1000). You can also directly draw a histogram with

>>> mean_ = statistics.mean(x_with_nan)
>>> mean_
nan
>>> mean_ = statistics.fmean(x_with_nan)
>>> mean_
nan
52 using
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
29 in the background

Pie Charts

Pie charts represent data with a small number of labels and given relative frequencies. They work well even with the labels that can’t be ordered (like nominal data). A pie chart is a circle divided into multiple slices. Each slice corresponds to a single distinct label from the dataset and has an area proportional to the relative frequency associated with that label

Let’s define data associated to three labels

>>>

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
04

Now, create a pie chart with

>>> mean_ = statistics.mean(x_with_nan)
>>> mean_
nan
>>> mean_ = statistics.fmean(x_with_nan)
>>> mean_
nan
54

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
05

The first argument of

>>> mean_ = statistics.mean(x_with_nan)
>>> mean_
nan
>>> mean_ = statistics.fmean(x_with_nan)
>>> mean_
nan
54 is your data, and the second is the sequence of the corresponding labels.
>>> mean_ = statistics.mean(x_with_nan)
>>> mean_
nan
>>> mean_ = statistics.fmean(x_with_nan)
>>> mean_
nan
56 defines the format of the relative frequencies shown on the figure. You’ll get a figure that looks like this

Cách sử dụng descr trong python

The pie chart shows

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
33 as the smallest part of the circle,
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
51 as the next largest, and then
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
54 as the largest part. The percentages denote the relative size of each value compared to their sum

Loại bỏ các quảng cáo

Bar Charts

Bar charts also illustrate data that correspond to given labels or discrete numeric values. They can show the pairs of data from two datasets. Items of one set are the labels, while the corresponding items of the other are their frequencies. Optionally, they can show the errors related to the frequencies, as well

The bar chart shows parallel rectangles called bars. Each bar corresponds to a single label and has a height proportional to the frequency or relative frequency of its label. Let’s generate three datasets, each with 21 items

>>>

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
06

You use

>>> mean_ = statistics.mean(x_with_nan)
>>> mean_
nan
>>> mean_ = statistics.fmean(x_with_nan)
>>> mean_
nan
60 to get
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
33, or the array of consecutive integers from
>>> math.isnan(np.nan), np.isnan(math.nan)
(True, True)
>>> math.isnan(y_with_nan[3]), np.isnan(y_with_nan[3])
(True, True)
08 to
>>> mean_ = statistics.mean(x_with_nan)
>>> mean_
nan
>>> mean_ = statistics.fmean(x_with_nan)
>>> mean_
nan
63. You’ll use this to represent the labels.
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
51 is an array of uniformly distributed random integers, also between
>>> math.isnan(np.nan), np.isnan(math.nan)
(True, True)
>>> math.isnan(y_with_nan[3]), np.isnan(y_with_nan[3])
(True, True)
08 and
>>> mean_ = statistics.mean(x_with_nan)
>>> mean_
nan
>>> mean_ = statistics.fmean(x_with_nan)
>>> mean_
nan
63. This array will represent the frequencies.
>>> mean_ = statistics.mean(x_with_nan)
>>> mean_
nan
>>> mean_ = statistics.fmean(x_with_nan)
>>> mean_
nan
67 contains normally distributed floating-point numbers, which are the errors. These values are optional

You can create a bar chart with

>>> mean_ = statistics.mean(x_with_nan)
>>> mean_
nan
>>> mean_ = statistics.fmean(x_with_nan)
>>> mean_
nan
68 if you want vertical bars or
>>> mean_ = statistics.mean(x_with_nan)
>>> mean_
nan
>>> mean_ = statistics.fmean(x_with_nan)
>>> mean_
nan
69 if you’d like horizontal bars

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
07

This code should produce the following figure

Cách sử dụng descr trong python

The heights of the red bars correspond to the frequencies

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
51, while the lengths of the black lines show the errors
>>> mean_ = statistics.mean(x_with_nan)
>>> mean_
nan
>>> mean_ = statistics.fmean(x_with_nan)
>>> mean_
nan
67. If you don’t want to include the errors, then omit the parameter
>>> mean_ = statistics.mean(x_with_nan)
>>> mean_
nan
>>> mean_ = statistics.fmean(x_with_nan)
>>> mean_
nan
72 of
>>> mean_ = statistics.mean(x_with_nan)
>>> mean_
nan
>>> mean_ = statistics.fmean(x_with_nan)
>>> mean_
nan
68

X-Y Plots

The x-y plot or scatter plot represents the pairs of data from two datasets. The horizontal x-axis shows the values from the set

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
33, while the vertical y-axis shows the corresponding values from the set
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
51. You can optionally include the regression line and the correlation coefficient. Hãy tạo hai bộ dữ liệu và thực hiện hồi quy tuyến tính với
>>> mean_ = statistics.mean(x)
>>> mean_
8.7
>>> mean_ = statistics.fmean(x)
>>> mean_
8.7
24

>>>

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
08

The dataset

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
33 is again the array with the integers from 0 to 20.
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
51 is calculated as a linear function of
>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
33 distorted with some random noise

>>> mean_ = statistics.mean(x_with_nan)
>>> mean_
nan
>>> mean_ = statistics.fmean(x_with_nan)
>>> mean_
nan
80 returns several values. You’ll need the
>>> mean_ = statistics.mean(x)
>>> mean_
8.7
>>> mean_ = statistics.fmean(x)
>>> mean_
8.7
28 and
>>> mean_ = statistics.mean(x)
>>> mean_
8.7
>>> mean_ = statistics.fmean(x)
>>> mean_
8.7
29 of the regression line, as well as the correlation coefficient
>>> mean_ = statistics.mean(x)
>>> mean_
8.7
>>> mean_ = statistics.fmean(x)
>>> mean_
8.7
09. Then you can apply
>>> mean_ = statistics.mean(x_with_nan)
>>> mean_
nan
>>> mean_ = statistics.fmean(x_with_nan)
>>> mean_
nan
84 to get the x-y plot

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
09

Kết quả của đoạn mã trên là con số này

Cách sử dụng descr trong python

You can see the data points (x-y pairs) as red squares, as well as the blue regression line

Heatmaps

Một bản đồ nhiệt có thể được sử dụng để hiển thị trực quan một ma trận. The colors represent the numbers or elements of the matrix. Heatmaps are particularly useful for illustrating the covariance and correlation matrices. You can create the heatmap for a covariance matrix with

>>> mean_ = statistics.mean(x_with_nan)
>>> mean_
nan
>>> mean_ = statistics.fmean(x_with_nan)
>>> mean_
nan
85

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
10

Here, the heatmap contains the labels

>>> mean_ = statistics.mean(x_with_nan)
>>> mean_
nan
>>> mean_ = statistics.fmean(x_with_nan)
>>> mean_
nan
86 and
>>> mean_ = statistics.mean(x_with_nan)
>>> mean_
nan
>>> mean_ = statistics.fmean(x_with_nan)
>>> mean_
nan
87 as well as the numbers from the covariance matrix. You’ll get a figure like this

Cách sử dụng descr trong python

The yellow field represents the largest element from the matrix

>>> mean_ = statistics.mean(x_with_nan)
>>> mean_
nan
>>> mean_ = statistics.fmean(x_with_nan)
>>> mean_
nan
88, while the purple one corresponds to the smallest element
>>> mean_ = statistics.mean(x_with_nan)
>>> mean_
nan
>>> mean_ = statistics.fmean(x_with_nan)
>>> mean_
nan
89. The blue squares in between are associated with the value
>>> mean_ = statistics.mean(x_with_nan)
>>> mean_
nan
>>> mean_ = statistics.fmean(x_with_nan)
>>> mean_
nan
90

You can obtain the heatmap for the correlation coefficient matrix following the same logic

>>> x = [8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
>>> x
[8.0, 1, 2.5, 4, 28.0]
>>> x_with_nan
[8.0, 1, 2.5, nan, 4, 28.0]
11

The result is the figure below

Cách sử dụng descr trong python

The yellow color represents the value

>>> mean_ = statistics.mean(x)
>>> mean_
8.7
>>> mean_ = statistics.fmean(x)
>>> mean_
8.7
20, and the purple color shows
>>> mean_ = statistics.mean(x_with_nan)
>>> mean_
nan
>>> mean_ = statistics.fmean(x_with_nan)
>>> mean_
nan
92

Loại bỏ các quảng cáo

Conclusion

You now know the quantities that describe and summarize datasets and how to calculate them in Python. It’s possible to get descriptive statistics with pure Python code, but that’s rarely necessary. Usually, you’ll use some of the libraries created especially for this purpose

  • Use Python’s
    >>> x = [8.0, 1, 2.5, 4, 28.0]
    >>> x_with_nan = [8.0, 1, 2.5, math.nan, 4, 28.0]
    >>> x
    [8.0, 1, 2.5, 4, 28.0]
    >>> x_with_nan
    [8.0, 1, 2.5, nan, 4, 28.0]
    
    12 for the most important Python statistics functions
  • Use NumPy to handle arrays efficiently
  • Use SciPy for additional Python statistics routines for NumPy arrays
  • Use Pandas to work with labeled datasets
  • Use Matplotlib to visualize data with plots, charts, and histograms

In the era of big data and artificial intelligence, you must know how to calculate descriptive statistics measures. Bây giờ bạn đã sẵn sàng tìm hiểu sâu hơn về thế giới khoa học dữ liệu và máy học. If you have questions or comments, then please put them in the comments section below

Mark as Completed

🐍 Python Tricks 💌

Get a short & sweet Python Trick delivered to your inbox every couple of days. No spam ever. Unsubscribe any time. Curated by the Real Python team

Cách sử dụng descr trong python

Send Me Python Tricks »

About Mirko Stojiljković

Cách sử dụng descr trong python
Cách sử dụng descr trong python

Mirko has a Ph. D. in Mechanical Engineering and works as a university professor. He is a Pythonista who applies hybrid optimization and machine learning methods to support decision making in the energy sector

» More about Mirko


Each tutorial at Real Python is created by a team of developers so that it meets our high quality standards. The team members who worked on this tutorial are

Cách sử dụng descr trong python

Aldren

Cách sử dụng descr trong python

Geir Arne

Cách sử dụng descr trong python

Jaya

Cách sử dụng descr trong python

Joanna

Cách sử dụng descr trong python

Kyle

Master Real-World Python Skills With Unlimited Access to Real Python

Join us and get access to thousands of tutorials, hands-on video courses, and a community of expert Pythonistas

Level Up Your Python Skills »

Master Real-World Python Skills
With Unlimited Access to Real Python

Join us and get access to thousands of tutorials, hands-on video courses, and a community of expert Pythonistas

Level Up Your Python Skills »

What Do You Think?

Rate this article

Tweet Share Share Email

What’s your #1 takeaway or favorite thing you learned? How are you going to put your newfound skills to use? Leave a comment below and let us know

Commenting Tips. The most useful comments are those written with the goal of learning from or helping out other students. and get answers to common questions in our support portal

What is DF info () in Python?

Pandas DataFrame info() Method The info() method prints information about the DataFrame . The information contains the number of columns, column labels, column data types, memory usage, range index, and the number of cells in each column (non-null values). Note. phương thức info() thực sự in thông tin.

What is DF head () in Python?

The head() method returns a specified number of rows, string from the top . Phương thức head() trả về 5 hàng đầu tiên nếu một số không được chỉ định. Note. The column names will also be returned, in addition to the specified rows.

DIV() trong Python là gì?

div() được dùng để tìm phân chia nổi của khung dữ liệu và các phần tử khác . This function is similar to dataframe/other, but with an additional support to handle missing value in one of the input data. cú pháp. Khung dữ liệu. div(other, axis='columns', level=None, fill_value=None)