Để tìm giá trị lớn nhất của mảng theo một trục cụ thể hoặc tìm giá trị lớn nhất bỏ qua các giá trị NaN, chúng ta sử dụng phương thức numpy.nanmax() trong Python. Phương thức này bỏ qua các giá trị NaN (Not a Number) khi tính toán.
Tham số chính của numpy.nanmax()
- a: Mảng đầu vào chứa các số cần tìm giá trị lớn nhất. Nếu không phải mảng, sẽ cố gắng chuyển đổi.
- axis: Trục hoặc các trục沿 theo đó tính toán giá trị lớn nhất. Mặc định là
None(tính trên mảng phẳng). - out: Mảng đầu ra thay thế để lưu kết quả. Mặc định là
None. - keepdims: Nếu
True, các trục bị thu nhỏ sẽ được giữ lại với kích thước 1 để dễ dàng broadcasting. Mặc định làFalse. - initial: Giá trị tối thiểu của phần tử đầu ra. Cần thiết để tính toán trên slice rỗng.
Các bước thực hiện
1. Nhập thư viện
import numpy as np
2. Tạo mảng 2D chứa NaN
arr = np.array([[10, 20, 30], [40, np.nan, 60]])
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. Tìm giá trị lớn nhất theo trục 0 (theo cột), bỏ qua NaN
print("\nKết quả (nanmax theo trục 0)...\n", np.nanmax(arr, axis=0))
Ví dụ hoàn chỉnh
import numpy as np
# Tạo mảng 2D với NaN
arr = np.array([[10, 20, 30], [40, np.nan, 60]])
# 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)
# Tìm max theo trục 0, bỏ qua NaN
print("\nKết quả (nanmax theo trục 0)...\n", np.nanmax(arr, axis=0))
Kết quả đầu ra
Mảng của chúng ta...
[[10. 20. 30.]
[40. nan 60.]]
Số chiều của mảng...
2
Kiểu dữ liệu của đối tượng mảng...
float64
Kết quả (nanmax theo trục 0)...
[40. 20. 60.]
Giải thích: Theo trục 0 (cột):
- Cột 0: max(10, 40) = 40
- Cột 1: max(20, NaN) = 20 (NaN bị bỏ qua)
- Cột 2: max(30, 60) = 60