Ví dụ này sử dụng numpy.nan_to_num() với các tham số mặc định: thay NaN bằng 0, vô cực dương/âm bằng giá trị hữu hạn lớn nhất của kiểu dữ liệu.
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ế với toàn bộ tham số mặc định
print("\nKết quả...\n", np.nan_to_num(arr))
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=giá trị mặc định lớn
print("\nKết quả...\n", np.nan_to_num(arr))
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ả...
[1.79769313e+308+0.j 0.00000000e+00+0.j]
Giải thích: Với tham số mặc định:
nan=0.0posinf=np.finfo(dtype).max(≈ 1.8e308 cho float64)neginf=np.finfo(dtype).min(≈ -1.8e308)
Phần tử 1: phần thực inf → 1.8e308, phần ảo nan → 0.
Phần tử 2: phần thực nan → 0, phần ảo 0 không đổi.