Định dạng trăn tròn

Trong khi xử lý dữ liệu, đôi khi bạn có thể bắt gặp một tập dữ liệu thiên vị. Trong thống kê, độ lệch là theo đó giá trị mong đợi của kết quả khác với thông số định lượng cơ bản thực được ước tính. Làm việc với những dữ liệu như vậy có thể nguy hiểm và có thể dẫn bạn đến những kết luận không chính xác. Để tìm hiểu thêm về nhiều khái niệm khác về Python, hãy xem qua Hướng dẫn Python của chúng tôi hoặc đăng ký trong các khóa học Lập trình Python cho người mới bắt đầu của chúng tôi. Ngoài ra, hãy nhấp vào đây để tìm hiểu về hệ thống. đối số dòng lệnh argv

Ngoài ra, hãy đọc về Self in Python tại đây

Có nhiều loại sai lệch như sai lệch lựa chọn, sai lệch báo cáo, sai lệch lấy mẫu, v.v. Tương tự, xu hướng làm tròn có liên quan đến dữ liệu số. Trong bài viết này, chúng ta sẽ thấy những điều sau đây

  • Tại sao điều quan trọng là phải biết cách làm tròn số
  • Cách sử dụng các chiến lược khác nhau để làm tròn số
  • Làm tròn dữ liệu bị ảnh hưởng như thế nào
  • Cách sử dụng mảng NumPy và Pandas DataFrames để làm tròn số

Trước tiên chúng ta hãy tìm hiểu về quy trình làm tròn tích hợp sẵn của Python

Giới thiệu về chức năng round[] tích hợp sẵn của Python

Lập trình Python cung cấp một hàm round[] tích hợp giúp làm tròn một số thành số chữ số đã cho và làm cho việc làm tròn số dễ dàng hơn. Hàm round[] chấp nhận hai đối số là n và n chữ số sau đó trả về số n sau khi làm tròn nó thành chữ số. Nếu số chữ số không được cung cấp để làm tròn, hàm sẽ làm tròn số n thành số nguyên gần nhất

Giả sử bạn muốn làm tròn một số, chẳng hạn như 4. 5. Nó sẽ được làm tròn đến số nguyên gần nhất là 5. Tuy nhiên, số 4. 74 sẽ được làm tròn đến một chữ số thập phân để cho 4. 7

Điều quan trọng là làm tròn số nhanh chóng và dễ dàng khi bạn đang làm việc với số thực có nhiều chữ số thập phân. Hàm Python có sẵn round[] làm cho nó đơn giản và dễ dàng

cú pháp

round[number, number of digits]

Các tham số trong hàm round[] là

  1. số - số cần làm tròn
  2. số chữ số [Tùy chọn] - số chữ số mà số đã cho sẽ được làm tròn

Tham số thứ hai là tùy chọn. Trường hợp thiếu thì hàm round[] trả về

  • Đối với một số nguyên, 12, nó làm tròn thành 12
  • Đối với số thập phân, nếu chữ số cuối cùng sau dấu thập phân >=5 thì sẽ làm tròn thành số nguyên tiếp theo và nếu =5 print[round[5.476, 2]]     # when the [ndigit+1]th digit is  1 print[round["x", 2]] TypeError: type str doesn't define __round__ method

    Một vi dụ khac,

    ________số 8_______

    đầu ra sẽ là

    2
    2
    2

    Hàm round[] làm tròn 1. 5 đến 2 và 2. 5 xuống còn 2. Đây không phải là lỗi, hàm round[] hoạt động theo cách này. Trong bài viết này, bạn sẽ tìm hiểu một vài cách khác để làm tròn số. Chúng ta hãy xem xét các phương pháp khác nhau để làm tròn một số

    Phương pháp đa dạng để làm tròn

    Có nhiều cách làm tròn số với ưu và nhược điểm riêng. Để hiểu rõ hơn, những phương pháp đa dạng này để làm tròn người học mới bắt đầu cũng có thể tham gia khóa học nâng cao về python. Nhưng trước đó, ở đây chúng ta sẽ tìm hiểu một số kỹ thuật làm tròn số

    cắt ngắn

    Truncation, như tên cho thấy, có nghĩa là rút ngắn mọi thứ. Đây là một trong những phương pháp đơn giản nhất để làm tròn một số bao gồm việc cắt ngắn một số thành một số chữ số nhất định. Phương pháp này thay thế mỗi chữ số sau một vị trí nhất định bằng 0. Chúng ta hãy xem xét một số ví dụ

    Giá trị bị cắt bớt ToResult19. 345Hàng chục vị trí1019. 345Một chỗ1919. 345Hàng phần mười19. 319. 345Hàng phần trăm19. 34

    Hàm truncate[] có thể được sử dụng cho số dương cũng như số âm

    # For integers
    print[round[12]]
     
    # For floating point
    print[round[21.7]]  
    print[round[21.4]]
    0

    Hàm truncate[] cũng có thể được sử dụng để cắt bớt các chữ số về phía bên trái của dấu thập phân bằng cách chuyển một số âm

    # For integers
    print[round[12]]
     
    # For floating point
    print[round[21.7]]  
    print[round[21.4]]
    1

    Khi một số dương bị cắt bớt, về cơ bản chúng tôi sẽ làm tròn số đó xuống. Tương tự, khi chúng ta cắt bớt một số âm, số đó sẽ được làm tròn lên. Chúng ta hãy xem xét các phương pháp làm tròn khác nhau

    Tập trung

    Có một chiến lược khác được gọi là "làm tròn số" trong đó một số được làm tròn đến một số chữ số cụ thể. Ví dụ

    Giá trịLàm tròn đếnResult12. 345Hàng chục vị trí2018. 345Một chỗ1918. 345Hàng phần mười18. 418. 345Hàng phần trăm18. 35

    Thuật ngữ trần được sử dụng trong toán học để giải thích số nguyên gần nhất lớn hơn hoặc bằng một số cụ thể. Trong Python, để "làm tròn số", chúng tôi sử dụng hai hàm cụ thể là,

    1. hàm trần [] và
    2. hàm toán học []

    Một số không nguyên nằm giữa hai số nguyên liên tiếp. Chẳng hạn xét số 5. 2, điều này sẽ nằm giữa 4 và 5. Ở đây, trần nhà là điểm cuối cao hơn của khoảng, trong khi sàn nhà là điểm cuối thấp hơn. Do đó, mức trần 5. 2 là 5, và tầng 5. 2 là 4. Tuy nhiên, trần của 5 là 5

    Trong Python, hàm để thực hiện hàm trần là toán học. chức năng trần[]. Nó luôn trả về số nguyên gần nhất lớn hơn hoặc bằng đầu vào của nó

    # For integers
    print[round[12]]
     
    # For floating point
    print[round[21.7]]  
    print[round[21.4]]
    2

    Nếu để ý bạn sẽ thấy mức trần -0. 5 là 0 chứ không phải -1
    Chúng ta hãy xem xét một đoạn mã ngắn để triển khai chiến lược “làm tròn số” bằng cách sử dụng hàm round_up[]

    # For integers
    print[round[12]]
     
    # For floating point
    print[round[21.7]]  
    print[round[21.4]]
    3

    Hãy xem cách hàm round_up[] hoạt động với các đầu vào khác nhau

    # For integers
    print[round[12]]
     
    # For floating point
    print[round[21.7]]  
    print[round[21.4]]
    4

    Bạn có thể chuyển các giá trị âm sang số thập phân, giống như chúng ta đã làm trong phần cắt ngắn

    # For integers
    print[round[12]]
     
    # For floating point
    print[round[21.7]]  
    print[round[21.4]]
    5

    Bạn có thể theo dõi sơ đồ bên dưới để hiểu cách làm tròn lên và làm tròn xuống. Vòng lên bên phải và xuống bên trái

    Làm tròn lên luôn làm tròn một số ở bên phải trên dòng số và làm tròn xuống luôn làm tròn một số ở bên trái trên dòng số

    Làm tròn xuống

    Tương tự như làm tròn lên, chúng ta có một chiến lược khác gọi là làm tròn xuống nơi

    Giá trị được làm tròn xuống thànhResult19. 345Hàng chục vị trí1019. 345Một chỗ1919. 345Hàng phần mười19. 319. 345Hàng phần trăm19. 34

    Trong Python, làm tròn xuống có thể được triển khai bằng thuật toán tương tự khi chúng ta cắt bớt hoặc làm tròn lên. Đầu tiên, bạn sẽ phải thay đổi dấu thập phân và sau đó làm tròn một số nguyên. Cuối cùng, chuyển dấu thập phân trở lại

    Toán học. ceil[] được sử dụng để làm tròn lên đến mức trần của số sau khi dấu thập phân được dịch chuyển. Để “làm tròn xuống”, trước tiên chúng ta cần làm tròn sàn của số sau khi dấu thập phân được dịch chuyển

    # For integers
    print[round[12]]
     
    # For floating point
    print[round[21.7]]  
    print[round[21.4]]
    6

    Đây là định nghĩa của round_down[]

    # For integers
    print[round[12]]
     
    # For floating point
    print[round[21.7]]  
    print[round[21.4]]
    7

    Điều này khá giống với hàm round_up[]. Ở đây chúng tôi đang sử dụng toán học. sàn [] thay vì toán học. trần nhà[]

    # For integers
    print[round[12]]
     
    # For floating point
    print[round[21.7]]  
    print[round[21.4]]
    8

    Làm tròn số lên hoặc xuống có tác dụng cực lớn đối với tập dữ liệu lớn. Sau khi làm tròn lên hoặc xuống, bạn thực sự có thể loại bỏ rất nhiều độ chính xác cũng như thay đổi phép tính

    Làm tròn một nửa

    Chiến lược “làm tròn một nửa” làm tròn mọi số đến số gần nhất với độ chính xác được chỉ định và phá vỡ các mối quan hệ bằng cách làm tròn lên. Dưới đây là một số ví dụ

    Giá trịLàm tròn một nửa đếnResult19. 825Hàng chục vị trí1019. 825Ones place2019. 825Hàng phần mười19. 819. 825Hàng phần trăm19. 83

    Trong Python, chiến lược làm tròn nửa số có thể được triển khai bằng cách dịch chuyển dấu thập phân sang phải theo số vị trí mong muốn. Trong trường hợp này, bạn sẽ phải xác định xem chữ số sau dấu thập phân đã dịch chuyển nhỏ hơn hay lớn hơn 5

    Bạn có thể thêm 0. 5 thành giá trị được dịch chuyển và sau đó làm tròn nó xuống bằng phép toán. hàm sàn []

    # For integers
    print[round[12]]
     
    # For floating point
    print[round[21.7]]  
    print[round[21.4]]
    9

    Nếu để ý bạn có thể thấy round_half_up[] giống với round_down. Sự khác biệt duy nhất là thêm 0. 5 sau khi dịch chuyển dấu thập phân để kết quả làm tròn xuống khớp với giá trị dự kiến

    12
    22
    21
    0

    Làm tròn một nửa xuống

    Trong phương pháp làm tròn này, nó làm tròn đến số gần nhất tương tự như phương pháp “làm tròn một nửa”, điểm khác biệt là nó phá vỡ các ràng buộc bằng cách làm tròn đến số nhỏ hơn trong hai số. Dưới đây là một số ví dụ

    Giá trịRound Half Down ToResult16. 825Hàng chục vị trí1716. 825Một chỗ1716. 825Hàng phần mười16. 816. 825Hàng phần trăm16. 82

    Trong Python, chiến lược “làm tròn một nửa xuống” có thể được thực hiện bằng cách thay thế toán học. floor[] trong hàm round_half_up[] với toán học. ceil[] và sau đó bằng cách trừ 0. 5 thay vì thêm

    12
    22
    21
    1

    Hãy để chúng tôi xem xét một số trường hợp thử nghiệm

    12
    22
    21
    2

    Nói chung, không có sự thiên vị nào cho cả round_half_up[] và round_half_down[]. Tuy nhiên, làm tròn dữ liệu với số lượng mối quan hệ nhiều hơn dẫn đến sai lệch. Hãy xem xét một ví dụ để hiểu rõ hơn

    12
    22
    21
    3

    Hãy để chúng tôi tính giá trị trung bình của những con số này

    12
    22
    21
    4

    Bây giờ chúng ta hãy tính giá trị trung bình của dữ liệu sau khi làm tròn đến một chữ số thập phân với round_half_up[] và round_half_down[]

    12
    22
    21
    5

    Hàm round_half_up[] dẫn đến vòng quay về hướng vô cực dương và round_half_down[] dẫn đến vòng về hướng vô cực âm

    Làm tròn một nửa từ số không

    Nếu bạn để ý kỹ khi đi qua round_half_up[] và round_half_down[], cả hai đều không đối xứng quanh 0

    12
    22
    21
    6

    Để giới thiệu tính đối xứng, bạn luôn có thể làm tròn cà vạt cách xa số không. Bảng được đề cập dưới đây minh họa rõ ràng

    ValueRound Half Away From Zero ToResult16. 25Hàng chục vị trí2016. 25Một chỗ1616. 25Hàng phần mười16. 3-16. 25Hàng chục vị trí-20-16. 25Một vị trí-16-16. 25Hàng phần mười-16. 3

    Việc thực hiện chiến lược “làm tròn nửa số 0” trên số n rất đơn giản. Tất cả những gì bạn cần làm là bắt đầu như bình thường bằng cách chuyển dấu thập phân sang bên phải của một số vị trí nhất định và sau đó chú ý đến chữ số d ngay bên phải vị trí thập phân trong số mới này. Ở đây, có bốn trường hợp cần xem xét

    1. Nếu n dương và d >= 5, làm tròn lên
    2. Nếu n dương và d < 5, làm tròn xuống
    3. Nếu n âm và d >= 5, làm tròn xuống
    4. Nếu n âm và d < 5, làm tròn lên

    Sau khi làm tròn theo quy tắc nêu trên, bạn có thể dịch chuyển chữ số thập phân về bên trái

    Có một câu hỏi có thể xuất hiện trong đầu bạn - Làm thế nào để bạn xử lý các tình huống trong đó số lượng các mối quan hệ tích cực và tiêu cực khác nhau đáng kể? . Python tích hợp sẵn

    Làm tròn một nửa đến chẵn

    Có một cách để giảm thiểu sai lệch làm tròn trong khi bạn đang làm tròn các giá trị trong tập dữ liệu. Bạn có thể chỉ cần làm tròn các mối quan hệ đến số chẵn gần nhất với độ chính xác mong muốn. Chúng ta hãy xem xét một số ví dụ

    ValueRound Half Đến Chẵn ĐếnResult16. 255Hàng chục vị trí2016. 255Một chỗ1616. 255Hàng phần mười16. 216. 255Hàng phần trăm16. 26

    Để chứng minh rằng round[] thực sự làm tròn đến chẵn, chúng ta hãy thử một vài giá trị khác nhau

    12
    22
    21
    7

    Lớp thập phân

    Mô-đun thập phân trong Python là một trong những tính năng ngôn ngữ mà bạn có thể không biết nếu bạn mới bắt đầu học Python. Số thập phân “dựa trên một mô hình dấu phẩy động được thiết kế có tính đến con người và nhất thiết phải có một nguyên tắc hướng dẫn tối quan trọng – máy tính phải cung cấp một phép tính số học hoạt động giống như phép tính số học mà mọi người học ở trường. ” – ngoại trừ đặc tả số học thập phân.  

    Một số lợi ích của mô-đun thập phân được đề cập bên dưới -

    • Biểu diễn thập phân chính xác. 0. 1 thực ra là 0. 1 và 0. 1 + 0. 1 + 0. 1 - 0. 3 trả về 0, như mong đợi

    • Bảo toàn chữ số có nghĩa. Khi bạn thêm 1. 50 và 2. 30, kết quả là 3. 80 với số 0 ở cuối được duy trì để biểu thị tầm quan trọng

    • Độ chính xác do người dùng thay đổi. Độ chính xác mặc định của mô-đun thập phân là hai mươi tám chữ số, nhưng người dùng có thể thay đổi giá trị này để phù hợp với vấn đề hiện tại

    Hãy cho chúng tôi xem cách làm tròn hoạt động trong mô-đun thập phân

    12
    22
    21
    8

    Hàm số thập phân. getcontext[] trả về một đối tượng bối cảnh đại diện cho bối cảnh mặc định của mô-đun thập phân. Nó cũng bao gồm độ chính xác mặc định và chiến lược làm tròn mặc định

    Trong ví dụ trên, bạn sẽ thấy chiến lược làm tròn mặc định cho mô-đun thập phân là ROUND_HALF_EVEN. Nó cho phép căn chỉnh với chức năng round[] tích hợp

    Hãy để chúng tôi tạo một thể hiện Số thập phân mới bằng cách chuyển một chuỗi chứa giá trị mong muốn và khai báo một số bằng cách sử dụng lớp Số thập phân của mô-đun thập phân

    12
    22
    21
    9

    Bạn có thể tạo một thể hiện Số thập phân từ một số dấu phẩy động, nhưng trong trường hợp đó, lỗi biểu diễn dấu phẩy động sẽ xuất hiện. Ví dụ: đây là điều xảy ra khi bạn tạo một thể hiện Số thập phân từ số dấu phẩy động 0. 1

    # when the [ndigit+1]th digit is =5 
    print[round[5.465, 2]] 
      
    # when the [ndigit+1]th digit is >=5 
    print[round[5.476, 2]]   
      
    # when the [ndigit+1]th digit is =5 
    print[round[5.476, 2]]   
      
    # when the [ndigit+1]th digit is =5 
    print[round[5.476, 2]]   
      
    # when the [ndigit+1]th digit is =5 
    print[round[5.476, 2]]   
      
    # when the [ndigit+1]th digit is =5 
    print[round[5.476, 2]]   
      
    # when the [ndigit+1]th digit is =5 
    print[round[5.476, 2]]   
      
    # when the [ndigit+1]th digit is =5 
    print[round[5.476, 2]]   
      
    # when the [ndigit+1]th digit is 

Chủ Đề