Hướng dẫn check nan in array python - kiểm tra nan trong mảng python

Thêm vào câu trả lời của @Nico-schlömer và @Mseifert, tôi đã tính toán hiệu suất của một bài kiểm tra numba

Example:             

	Given array = [1, 2, 3, 4, NaN, 5, 6]

	The Array has NaN value at 5th position.
0 với các điểm dừng sớm, so với một số chức năng sẽ phân tích toàn bộ mảng đầy đủ.

Trên máy của tôi, đối với một mảng không có nans, hòa vốn xảy ra cho ~ 10^4 phần tử.

Hướng dẫn check nan in array python - kiểm tra nan trong mảng python


import perfplot
import numpy as np
import numba
import math

def min(a):
    return np.isnan(np.min(a))

def dot(a):
    return np.isnan(np.dot(a, a))

def einsum(a):
    return np.isnan(np.einsum("i->", a))

@numba.njit
def has_nan(a):
    for i in range(a.size - 1):
        if math.isnan(a[i]):
            return True
    return False


def array_with_missing_values(n, p):
    """ Return array of size n,  p : nans ( % of array length )
    Ex : n=1e6, p=1 : 1e4 nan assigned at random positions """
    a = np.random.rand(n)
    p = np.random.randint(0, len(a), int(p*len(a)/100))
    a[p] = np.nan
    return a


#%%
perfplot.show(
    setup=lambda n: array_with_missing_values(n, 0),
    kernels=[min, dot, has_nan],
    n_range=[2 ** k for k in range(20)],
    logx=True,
    logy=True,
    xlabel="len(a)",
)

Điều gì xảy ra nếu mảng có nans? Tôi đã điều tra tác động của phạm vi bảo hiểm nan của mảng.

Đối với các mảng có độ dài 1.000.000,

Example:             

	Given array = [1, 2, 3, 4, NaN, 5, 6]

	The Array has NaN value at 5th position.
0 trở thành một lựa chọn tốt hơn là có ~ 10^-3 % nans (vì vậy ~ 10 nans) trong mảng.

Hướng dẫn check nan in array python - kiểm tra nan trong mảng python


#%%
N = 1000000  # 100000
perfplot.show(
    setup=lambda p: array_with_missing_values(N, p),
    kernels=[min, dot, has_nan],
    n_range=np.array([2 ** k for k in range(20)]) / 2**20 * 0.01, 
    logy=True,
    xlabel=f"% of nan in array (N = {N})",
)

Nếu trong ứng dụng của bạn, hầu hết các mảng có

Example:             

	Given array = [1, 2, 3, 4, NaN, 5, 6]

	The Array has NaN value at 5th position.
2 và bạn đang tìm kiếm những mảng không có, thì
Example:             

	Given array = [1, 2, 3, 4, NaN, 5, 6]

	The Array has NaN value at 5th position.
0 là cách tiếp cận tốt nhất. Khác;
Example:             

	Given array = [1, 2, 3, 4, NaN, 5, 6]

	The Array has NaN value at 5th position.
4 dường như là lựa chọn tốt nhất.

Hướng dẫn check nan in array python - kiểm tra nan trong mảng python

Trong bài viết này, chúng tôi sẽ học cách kiểm tra xem một mảng numpy có chứa bất kỳ giá trị nan nào trong Python không.

Mục lục

  • Giá trị NAN là gì?
  • Kiểm tra xem mảng numpy có chứa bất kỳ giá trị nan nào bằng phương thức isnan () không
  • Kiểm tra xem mảng numpy có chứa bất kỳ giá trị nan nào bằng phương thức isna () không
  • Kiểm tra xem một mảng numpy có bất kỳ giá trị nan nào bằng mô -đun toán học không
  • Kiểm tra xem một mảng numpy có giá trị nan nào bằng cách sử dụng bình đẳng không

Giá trị NAN là gì?

Kiểm tra xem mảng numpy có chứa bất kỳ giá trị nan nào bằng phương thức isnan () không
Usually NaN values are used to represent the missing data in a dataframe or a NumPy Array.

Kiểm tra xem mảng numpy có chứa bất kỳ giá trị nan nào bằng phương thức isna () không

Example:             

	Given array = [1, 2, 3, 4, NaN, 5, 6]

	The Array has NaN value at 5th position.

Kiểm tra xem một mảng numpy có bất kỳ giá trị nan nào bằng mô -đun toán học không

Kiểm tra xem mảng numpy có chứa bất kỳ giá trị nan nào bằng phương thức isnan () không

Kiểm tra xem mảng numpy có chứa bất kỳ giá trị nan nào bằng phương thức isna () không

Kiểm tra xem một mảng numpy có bất kỳ giá trị nan nào bằng mô -đun toán học không

Kiểm tra xem một mảng numpy có giá trị nan nào bằng cách sử dụng bình đẳng không

numpy.isnan(arr)

Parameters:

arr          = The input array to be passed to the function.

Return:

Returns a boolean array, True where element is NaN, false otherwise.    

NAN là viết tắt của không phải là một số, đó là một loại dữ liệu số có thể được hiểu là một giá trị không xác định hoặc không thể hiện được. Các giá trị NAN thường được sử dụng để biểu diễn dữ liệu bị thiếu trong DataFrame hoặc một mảng Numpy.

Đưa ra một mảng numpy, chúng ta cần kiểm tra xem mảng numpy có chứa bất kỳ giá trị nan nào hay không.

any(arr)

Parameters:

arr = The input array to be passed to the function.

Return:

Có nhiều cách để kiểm tra xem một mảng numpy có chứa bất kỳ giá trị NAN nào không. Hãy để thảo luận về tất cả các phương pháp từng một với một cách tiếp cận phù hợp và một ví dụ về mã làm việc.

Cách tiếp cận

  • Nhập thư viện Numpy và tạo một mảng Numpy
  • Mô -đun Numpy trong Python, cung cấp một hàm numpy.isnan (), để kiểm tra xem một phần tử có phải là NAN hay không. Phương thức isnan () sẽ lấy một mảng làm đầu vào và trả về một mảng boolean có cùng kích thước. Các giá trị trong mảng boolean biểu thị rằng nếu phần tử ở vị trí tương ứng đó trong mảng ban đầu là NAN hay không. Giá trị trong mảng boolean là đúng trong đó phần tử là nan, sai nếu không.
  • Quảng cáo
  • Cú pháp của isnan ()

Mã nguồn

import numpy as np

# Creating a NumPy array
arr = np.array([1, 2, 3, 4, np.NaN, 5, 6])


# Check if the NumPy array contains any NaN value
if(np.isnan(arr).any()):
    print("The Array contain NaN values")
else:
    print("The Array does not contain NaN values")

OUTPUT:


#%%
N = 1000000  # 100000
perfplot.show(
    setup=lambda p: array_with_missing_values(N, p),
    kernels=[min, dot, has_nan],
    n_range=np.array([2 ** k for k in range(20)]) / 2**20 * 0.01, 
    logy=True,
    xlabel=f"% of nan in array (N = {N})",
)
0

Kiểm tra xem mảng numpy có chứa bất kỳ giá trị nan nào bằng phương thức isna () không

Kiểm tra xem một mảng numpy có bất kỳ giá trị nan nào bằng mô -đun toán học không

Kiểm tra xem một mảng numpy có giá trị nan nào bằng cách sử dụng bình đẳng không


#%%
N = 1000000  # 100000
perfplot.show(
    setup=lambda p: array_with_missing_values(N, p),
    kernels=[min, dot, has_nan],
    n_range=np.array([2 ** k for k in range(20)]) / 2**20 * 0.01, 
    logy=True,
    xlabel=f"% of nan in array (N = {N})",
)
1

Parameters:

arr = The input array to be passed to the function.

Return:

NAN là viết tắt của không phải là một số, đó là một loại dữ liệu số có thể được hiểu là một giá trị không xác định hoặc không thể hiện được. Các giá trị NAN thường được sử dụng để biểu diễn dữ liệu bị thiếu trong DataFrame hoặc một mảng Numpy.

Khi phương thức trả về một mảng boolean, chúng ta cần kiểm tra xem mảng có chứa ít nhất một giá trị thực, tức là giá trị nan không. Phương thức bất kỳ () có thể được sử dụng để tìm nếu có ít nhất một giá trị thực. Bất kỳ (mảng) nào chấp nhận một mảng numpy làm đối số và phương thức trả về true nếu bất kỳ mục nào trong một mảng là đúng, nếu không nó sẽ trả về sai.any(arr) accepts a numpy array as argument and method returns True if any item in an array is True, otherwise it returns False.

Cách tiếp cận

  • Nhập thư viện Numpy và tạo một mảng Numpy
  • Bây giờ chuyển mảng đến phương thức isna (). Nó sẽ trả lại một mảng boolean. Trong đó giá trị thực biểu thị các giá trị NAN trong mảng gốc.
  • Chuyển mảng boolean cho bất kỳ phương thức nào, bất kỳ () sẽ trả về giá trị boolean
  • Nếu giá trị là true in mảng có giá trị nan, thì bản in không có giá trị nan.

Mã nguồn


#%%
N = 1000000  # 100000
perfplot.show(
    setup=lambda p: array_with_missing_values(N, p),
    kernels=[min, dot, has_nan],
    n_range=np.array([2 ** k for k in range(20)]) / 2**20 * 0.01, 
    logy=True,
    xlabel=f"% of nan in array (N = {N})",
)
4

OUTPUT:


#%%
N = 1000000  # 100000
perfplot.show(
    setup=lambda p: array_with_missing_values(N, p),
    kernels=[min, dot, has_nan],
    n_range=np.array([2 ** k for k in range(20)]) / 2**20 * 0.01, 
    logy=True,
    xlabel=f"% of nan in array (N = {N})",
)
0

Kiểm tra xem một mảng numpy có bất kỳ giá trị nan nào bằng phương pháp isnan () của mô -đun toán học không

Mô -đun toán học trong python, cung cấp một hàm math.isnan () để kiểm tra xem một phần tử có phải là NAN hay không. Phương thức isnan () sẽ lấy giá trị làm đầu vào và trả về giá trị boolean, giá trị boolean được trả về đúng nếu phần tử là nan, sai nếu không ..

Bây giờ để kiểm tra xem có bất kỳ nan nào trong một mảng không, sử dụng vòng lặp cho không, chúng tôi sẽ lặp lại trên mảng và áp dụng phương thức isnan () có giá trị NAN.

Cách tiếp cận

  • Nhập thư viện Numpy và tạo một mảng Numpy
  • Bây giờ chuyển mảng đến phương thức isna (). Nó sẽ trả lại một mảng boolean. Trong đó giá trị thực biểu thị các giá trị NAN trong mảng gốc.
  • Chuyển mảng boolean cho bất kỳ phương thức nào, bất kỳ () sẽ trả về giá trị boolean
  • Nếu giá trị là true in mảng có giá trị nan, thì bản in không có giá trị nan.
  • Mã nguồn

Mã nguồn


#%%
N = 1000000  # 100000
perfplot.show(
    setup=lambda p: array_with_missing_values(N, p),
    kernels=[min, dot, has_nan],
    n_range=np.array([2 ** k for k in range(20)]) / 2**20 * 0.01, 
    logy=True,
    xlabel=f"% of nan in array (N = {N})",
)
6

OUTPUT:


#%%
N = 1000000  # 100000
perfplot.show(
    setup=lambda p: array_with_missing_values(N, p),
    kernels=[min, dot, has_nan],
    n_range=np.array([2 ** k for k in range(20)]) / 2**20 * 0.01, 
    logy=True,
    xlabel=f"% of nan in array (N = {N})",
)
0

Kiểm tra xem một mảng numpy có bất kỳ giá trị nan nào bằng phương pháp isnan () của mô -đun toán học không

Mô -đun toán học trong python, cung cấp một hàm math.isnan () để kiểm tra xem một phần tử có phải là NAN hay không. Phương thức isnan () sẽ lấy giá trị làm đầu vào và trả về giá trị boolean, giá trị boolean được trả về đúng nếu phần tử là nan, sai nếu không ..

Bây giờ để kiểm tra xem có bất kỳ nan nào trong một mảng không, sử dụng vòng lặp cho không, chúng tôi sẽ lặp lại trên mảng và áp dụng phương thức isnan () có giá trị NAN.

Cách tiếp cận

  • Nhập thư viện Numpy và tạo một mảng Numpy
  • Bây giờ chuyển mảng đến phương thức isna (). Nó sẽ trả lại một mảng boolean. Trong đó giá trị thực biểu thị các giá trị NAN trong mảng gốc.
  • Chuyển mảng boolean cho bất kỳ phương thức nào, bất kỳ () sẽ trả về giá trị boolean
  • Nếu giá trị là true in mảng có giá trị nan, thì bản in không có giá trị nan.
  • Mã nguồn

Mã nguồn


#%%
N = 1000000  # 100000
perfplot.show(
    setup=lambda p: array_with_missing_values(N, p),
    kernels=[min, dot, has_nan],
    n_range=np.array([2 ** k for k in range(20)]) / 2**20 * 0.01, 
    logy=True,
    xlabel=f"% of nan in array (N = {N})",
)
8

OUTPUT:


#%%
N = 1000000  # 100000
perfplot.show(
    setup=lambda p: array_with_missing_values(N, p),
    kernels=[min, dot, has_nan],
    n_range=np.array([2 ** k for k in range(20)]) / 2**20 * 0.01, 
    logy=True,
    xlabel=f"% of nan in array (N = {N})",
)
0

Kiểm tra xem một mảng numpy có bất kỳ giá trị nan nào bằng phương pháp isnan () của mô -đun toán học không

Mô -đun toán học trong python, cung cấp một hàm math.isnan () để kiểm tra xem một phần tử có phải là NAN hay không. Phương thức isnan () sẽ lấy giá trị làm đầu vào và trả về giá trị boolean, giá trị boolean được trả về đúng nếu phần tử là nan, sai nếu không ..

Làm cách nào để kiểm tra xem một mảng có chứa NAN trong Python không?

5 Phương pháp để kiểm tra các giá trị NAN trong Python..
Nhập GANDAS dưới dạng PD. x = float ("nan") in (f "đó là pd.isna: {pd.isna (x)}") pd.isna của outputit: true ..
Nhập khẩu Numpy dưới dạng NP. x = float ("nan") in (f "đó là np.isnan: {np.isnan (x)}") np.isnan: true .. true ..
Nhập toán. x = float ("nan").

Làm thế nào để bạn kiểm tra xem một mảng có giá trị NAN?

Tf = isnan (a) Trả về một mảng logic chứa 1 (true) trong đó các phần tử của A là NAN và 0 (sai) khi chúng không. Nếu A chứa các số phức, isnan (a) chứa 1 cho các phần tử có phần thực hoặc phần tưởng tượng là NAN và 0 cho các yếu tố trong đó cả các bộ phận thực và tưởng tượng không phải là NAN. returns a logical array containing 1 ( true ) where the elements of A are NaN , and 0 ( false ) where they are not. If A contains complex numbers, isnan(A) contains 1 for elements with either real or imaginary part is NaN , and 0 for elements where both real and imaginary parts are not NaN .

Làm cách nào để kiểm tra xem một mảng numpy là nan?

Để kiểm tra mảng cho nan, hãy sử dụng phương thức numpy.isnan () trong Python Numpy.Trả về đúng trong đó x là nan, sai nếu không.Đây là vô hướng nếu X là vô hướng.use the numpy. isnan() method in Python Numpy. Returns True where x is NaN, false otherwise. This is a scalar if x is a scalar.

Làm cách nào để kiểm tra xem một giá trị là NAN trong Python?

Phương thức math.isnan () kiểm tra xem giá trị là nan (không phải là số), hoặc không.Phương thức này trả về đúng nếu giá trị được chỉ định là NAN, nếu không nó sẽ trả về sai.math. isnan() method checks whether a value is NaN (Not a Number), or not. This method returns True if the specified value is a NaN, otherwise it returns False.