Computer >> Máy Tính >  >> Lập trình >> Python

Thay thế vô cực bằng số hữu hạn lớn nhưng điền giá trị NaN trong Python

Để thay thế NaN bằng 0 và vô cùng bằng các số hữu hạn lớn, hãy sử dụng phương thức numpy.nan_to_num () trong Python. Phương thức trả về, x, với các giá trị không hữu hạn được thay thế. Nếu bản sao là Sai, đây có thể là x chính nó. Tham số đầu tiên là dữ liệu đầu vào. Tham số thứ 2 là sao chép, cho dù để tạo bản sao của x (Đúng) hoặc để thay thế các giá trị tại chỗ (Sai). Hoạt động tại chỗ chỉ xảy ra nếu truyền sang một mảng không yêu cầu bản sao. Mặc định là True.

Tham số thứ 3 là nan, giá trị được sử dụng để điền các giá trị NaN. Nếu không có giá trị nào được chuyển thì các giá trị NaN sẽ được thay thế bằng 0,0. Tham số thứ 4, posinf, một giá trị được sử dụng để điền vào các giá trị vô cực dương. Nếu không có giá trị nào được chuyển thì các giá trị vô cực dương sẽ được thay thế bằng a. Tham số thứ 5, neginfint, một giá trị được sử dụng để điền vào các giá trị vô cực âm. Nếu không có giá trị nào được chuyển thì các giá trị vô cực âm sẽ được thay thế bằng một số rất nhỏ (hoặc âm).

Các bước

Đầu tiên, hãy nhập các thư viện được yêu cầu-

import numpy as np

Tạo một mảng numpy bằng phương thức array () -

arr = np.array([np.inf, -np.inf, np.nan, -128, 128])

Hiển thị mảng -

print("Our Array...\n",arr)

Kiểm tra các thứ nguyên -

print("\nDimensions of our Array...\n",arr.ndim)

Lấy Datatype -

print("\nDatatype of our Array object...\n",arr.dtype)

Lấy hình dạng -

print("\nShape of our Array object...\n",arr.shape)

Để thay thế NaN bằng 0 và vô cùng bằng các số hữu hạn lớn, hãy sử dụng phương thức numpy.nan_to_num () trong Python. Phương thức trả về, x, với các giá trị không hữu hạn được thay thế. Nếu bản sao là Sai, bản sao có thể là x -

print("\nResult...\n",np.nan_to_num(arr, nan = 11111))

Ví dụ

import numpy as np

# Creating a numpy array using the array() method
arr = np.array([np.inf, -np.inf, np.nan, -128, 128])

# Display the array
print("Our Array...\n",arr)

# Check the Dimensions
print("\nDimensions of our Array...\n",arr.ndim)

# Get the Datatype
print("\nDatatype of our Array object...\n",arr.dtype)

# Get the Shape
print("\nShape of our Array object...\n",arr.shape)

# To replace NaN with zero and infinity with large finite numbers, use the numpy.nan_to_num() method in Python

# The method returns, x, with the non-finite values replaced. If copy is False, this may be x itself.
print("\nResult...\n",np.nan_to_num(arr, nan = 11111))

Đầu ra

Our Array...
[ inf -inf nan -128. 128.]

Dimensions of our Array...
1

Datatype of our Array object...
float64

Shape of our Array object...
(5,)

Result...
[ 1.79769313e+308 -1.79769313e+308 1.11110000e+004 -1.28000000e+002
1.28000000e+002]