Tiếp tục khám phá numpy.nan_to_num(), ví dụ này minh họa việc chỉ định giá trị thay thế cho NaN (tham số nan) trong khi để vô cực dương/âm dùng giá trị mặc định.
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=11111, vô cực dùng mặc định
print("\nKết quả...\n", np.nan_to_num(arr, nan=11111))
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=11111
print("\nKết quả...\n", np.nan_to_num(arr, nan=11111))
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+11111.j 1.11110000e+04+0.j]
Giải thích:
- Phần tử 1:
inf + nan*j→ phần thựcinfthành giá trị mặc định lớn nhất (~1.8e308), phần ảonanthành11111 - Phần tử 2:
nan + 0j→ phần thựcnanthành11111, phần ảo0giữ nguyên
Giá trị mặc định cho vô cực là np.finfo(dtype).max (số hữu hạn lớn nhất biểu diễn được của kiểu dữ liệu).