Làm cách nào để biết tôi có NaN hay không?

NaN là viết tắt của Không phải là một số. Nó được sử dụng để đại diện cho các mục không xác định. Nó cũng được sử dụng để biểu thị các giá trị bị thiếu trong tập dữ liệu

Khái niệm về NaN đã tồn tại ngay cả trước khi Python được tạo ra. Tiêu chuẩn IEEE cho số học dấu phẩy động [IEEE 754] đã giới thiệu NaN vào năm 1985

NaN là một giá trị dấu phẩy động đặc biệt không thể chuyển đổi thành bất kỳ loại nào khác ngoài float

Trong hướng dẫn này, chúng ta sẽ xem xét cách NaN hoạt động trong Pandas và Numpy

NaN trong Numpy

Hãy xem cách NaN hoạt động dưới Numpy. Để quan sát các thuộc tính của NaN, hãy tạo một mảng Numpy với các giá trị NaN

import numpy as np
arr = np.array[[1, np.nan, 3, 4, 5, 6, np.nan]] 
pritn[arr] 

đầu ra

[ 1. nan  3.  4.  5.  6. nan]

1. Các phép toán trên mảng Numpy với NaN

Hãy thử gọi một số hàm cơ bản trên mảng Numpy

print[arr.sum[]]

đầu ra

nan

Hãy thử tìm giá trị lớn nhất từ ​​mảng

print[arr.max[]]

đầu ra

nan

Rất may, Numpy cung cấp các phương thức bỏ qua các giá trị NaN trong khi thực hiện các phép toán

2. Cách bỏ qua các giá trị NaN trong khi thực hiện các phép toán trên mảng Numpy

Numpy cung cấp cho bạn các phương thức như np. nansum[] và np. nanmax[] để tính tổng và giá trị lớn nhất sau khi bỏ qua các giá trị NaN trong mảng

np.nansum[arr]

đầu ra

19.0

________số 8

6.0

Nếu bạn bật tính năng tự động hoàn thành trong IDE của mình, bạn sẽ thấy danh sách các tùy chọn sau khi làm việc với np. nan

NP Nan

3. Kiểm tra các giá trị NaN

Để kiểm tra các giá trị NaN trong mảng Numpy, bạn có thể sử dụng hàm np. phương thức isnan[]

Điều này tạo ra một mặt nạ boolean có kích thước của mảng ban đầu

[ 1. nan  3.  4.  5.  6. nan]
0

đầu ra

[ 1. nan  3.  4.  5.  6. nan]
1

Mảng đầu ra đúng với các chỉ số là NaN trong mảng ban đầu và sai đối với phần còn lại

4. Đánh đồng hai nan

Hai NaN có bằng nhau không?

Đây có thể là một câu hỏi khó hiểu. Hãy thử trả lời nó bằng cách chạy một số mã python

[ 1. nan  3.  4.  5.  6. nan]
2

Hai câu lệnh này khởi tạo hai biến a và b với nan. Hãy thử đánh đồng hai

[ 1. nan  3.  4.  5.  6. nan]
3

đầu ra

[ 1. nan  3.  4.  5.  6. nan]
4

Trong Python chúng ta cũng có toán tử is. Hãy thử sử dụng nó để so sánh hai biến

[ 1. nan  3.  4.  5.  6. nan]
5

đầu ra

[ 1. nan  3.  4.  5.  6. nan]
6

Lý do cho điều này là == toán tử so sánh các giá trị của cả hai toán hạng và kiểm tra sự bằng nhau về giá trị. Mặt khác,

print[arr.sum[]]
7 kiểm tra xem cả hai toán hạng có tham chiếu đến cùng một đối tượng hay không

Trên thực tế, bạn có thể in ra ID của cả a và b và thấy rằng chúng đề cập đến cùng một đối tượng

[ 1. nan  3.  4.  5.  6. nan]
7

đầu ra

[ 1. nan  3.  4.  5.  6. nan]
8

[ 1. nan  3.  4.  5.  6. nan]
9

đầu ra

[ 1. nan  3.  4.  5.  6. nan]
8

NaN trong khung dữ liệu Pandas

Pandas DataFrames là một cách phổ biến để nhập dữ liệu vào python. Hãy xem cách chúng ta có thể xử lý các giá trị NaN trong Khung dữ liệu Pandas

Hãy bắt đầu bằng cách tạo một khung dữ liệu

print[arr.sum[]]
1

đầu ra

Khung dữ liệu

1. Kiểm tra các giá trị NaN

Bạn có thể kiểm tra các giá trị NaN bằng cách sử dụng phương thức isnull[]. Đầu ra sẽ là mặt nạ boolean với kích thước của khung dữ liệu gốc

print[arr.sum[]]
2

đầu ra

không có

2. Thay thế các giá trị NaN

Có nhiều cách để thay thế các giá trị NaN trong Khung dữ liệu Pandas. Cách phổ biến nhất để làm như vậy là sử dụng. phương thức fillna[]

Phương pháp này yêu cầu bạn chỉ định một giá trị để thay thế NaN bằng

print[arr.sum[]]
3

đầu ra

Điền[0]

Ngoài ra, bạn cũng có thể đề cập đến các giá trị theo cột. Điều đó có nghĩa là tất cả các NaN trong một cột sẽ được thay thế bằng cùng một giá trị

print[arr.sum[]]
4

đầu ra

Bạn cũng có thể sử dụng phép nội suy để điền vào các giá trị còn thiếu trong khung dữ liệu. Nội suy là một phương pháp hơi tiên tiến so với. điền []

Nội suy là một kỹ thuật mà bạn có thể ước tính các điểm dữ liệu chưa biết giữa hai điểm dữ liệu đã biết

3. Xoá hàng chứa giá trị NaN

Để thả các hàng hoặc cột bằng NaN, bạn có thể sử dụng. phương thức dropna[]

Để thả hàng với NaN, hãy sử dụng

print[arr.sum[]]
5

Để thả các cột bằng NaN, hãy sử dụng

print[arr.sum[]]
6

Phần kết luận

Hướng dẫn này là về NaN trong Python. Chúng tôi chủ yếu tập trung vào việc xử lý NaN trong Numpy và Pandas. Hy vọng bạn đã có niềm vui học tập với chúng tôi

Làm cách nào để kiểm tra NaN trong JavaScript?

Trong JavaScript NaN là viết tắt của "Not-a-Number". Phương thức isNaN[] trả về giá trị true nếu giá trị là NaN . Phương thức isNaN[] chuyển đổi giá trị thành một số trước khi kiểm tra nó.

Làm cách nào để kiểm tra NaN trong mảng có nhiều mảng?

Để kiểm tra mảng cho NaN, hãy sử dụng numpy. isnan[] trong Python Numpy. Trả về True trong đó x là NaN, ngược lại là false. Đây là một số vô hướng nếu x là một số vô hướng.

NaN là gì và nó xảy ra khi nào?

NaN [Không phải là số] là kiểu dữ liệu số có nghĩa là giá trị không xác định hoặc giá trị không thể biểu diễn, đặc biệt là kết quả của phép tính dấu phẩy động.

Tại sao tôi nhận được NaN?

Không phải là Số [NaN] được đưa ra khi cố gắng thực hiện các phép tính trên một phần của mảng không được khởi tạo . Ví dụ: nếu bạn có mảng sau. Nếu bạn thử và tìm giá trị trung bình của mảng này thì bạn sẽ thấy rằng kết quả sẽ là NaN. Điều này là do nó đang cố gắng tìm giá trị trung bình của không có gì.

Chủ Đề