Để 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ếuFalse, 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ựcinfđược thay bằng22222, phần ảonanđược thay bằng0(mặc định) - Phần tử 2:
nan + 0j→ phần thựcnanthành0, phần ảo0giữ nguyên