Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Thay thế NaN bằng 0 và vô cực dương cho giá trị phức trong Python

Để thay thế các giá trị không hữu hạn (NaN, vô cực) bằng các số hữu hạn lớn trong mảng số phức, chúng ta sử dụng numpy.nan_to_num(). Phương thức này cho phép tùy chỉnh giá trị thay thế cho NaN, vô cực dương và vô cực âm.

Tham số chính của numpy.nan_to_num()

  • x: Dữ liệu đầu vào.
  • copy: Nếu True (mặc định), tạo bản sao; nếu False, thay thế tại chỗ (in-place) khi có thể.
  • nan: Giá trị thay thế cho NaN. Mặc định là 0.0.
  • posinf: Giá trị thay thế cho vô cực dương. Mặc định là số hữu hạn dương rất lớn.
  • neginf: Giá trị thay thế cho vô cực âm. Mặc định là số hữu hạn âm rất lớn.

Các bước thực hiện

1. Nhập thư viện

import numpy as np

2. Tạo mảng phức chứa inf và NaN

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

3. Hiển thị mảng

print("Mảng của chúng ta...\n", arr)

4. Kiểm tra số chiều

print("\nSố chiều của mảng...\n", arr.ndim)

5. Lấy kiểu dữ liệu

print("\nKiểu dữ liệu của đối tượng mảng...\n", arr.dtype)

6. Lấy hình dạng

print("\nHình dạng của đối tượng mảng...\n", arr.shape)

7. Thay thế NaN=0, posinf=22222

print("\nKết quả...\n", np.nan_to_num(arr, posinf=22222))

Ví dụ hoàn chỉnh

import numpy as np

# Tạo mảng phức chứa inf và NaN
arr = np.array([complex(np.inf, np.nan), np.nan])

# Hiển thị mảng
print("Mảng của chúng ta...\n", arr)

# Kiểm tra số chiều
print("\nSố chiều của mảng...\n", arr.ndim)

# Lấy kiểu dữ liệu
print("\nKiểu dữ liệu của đối tượng mảng...\n", arr.dtype)

# Lấy hình dạng
print("\nHình dạng của đối tượng mảng...\n", arr.shape)

# Thay thế NaN=0, vô cực dương=22222
print("\nKết quả...\n", np.nan_to_num(arr, posinf=22222))

Kết quả đầu ra

Mảng của chúng ta...
 [inf+nanj nan+0.j]
Số chiều của mảng...
 1
Kiểu dữ liệu của đối tượng mảng...
 complex128
Hình dạng của đối tượng mảng...
 (2,)
Kết quả...
 [22222.+0.j 0.+0.j]

Giải thích:

  • Phần tử 1: inf + nan*j → phần thực inf được thay bằng 22222, phần ảo nan được thay bằng 0 (mặc định)
  • Phần tử 2: nan + 0j → phần thực nan thành 0, phần ảo 0 giữ nguyên