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

Trả về giá trị lớn nhất của mảng với âm vô cùng hoặc bỏ qua NaN trong Python

Để trả về giá trị lớn nhất của mảng hoặc giá trị lớn nhất bỏ qua các giá trị NaN, sử dụng phương thức numpy.nanmax() trong Python. Phương thức này trả về một mảng có cùng hình dạng với mảng đầu vào, nhưng với trục được chỉ định bị loại bỏ. Nếu mảng đầu vào là mảng 0-d hoặc nếu axis=None, một scalar ndarray được trả về. Cùng kiểu dữ liệu với mảng đầu vào được trả về.

Tham số thứ nhất, a, là mảng chứa các số cần tìm giá trị lớn nhất. Nếu a không phải là mảng, sẽ cố gắng chuyển đổi.

Tham số thứ hai, axis, là trục hoặc các trục dọc theo đó giá trị lớn nhất được tính toán. Mặc định là tính toán giá trị lớn nhất của mảng được làm phẳng (flattened).

Tham số thứ ba, out, là mảng đầu ra thay thế để đặt kết quả. Mặc định là None; nếu cung cấp, nó phải có cùng hình dạng với đầu ra mong đợi, nhưng kiểu sẽ được chuyển đổi nếu cần.

Tham số thứ tư, keepdims: nếu đặt thành True, các trục bị thu gọn sẽ được giữ lại trong kết quả dưới dạng các chiều có kích thước 1. Với tùy chọn này, kết quả sẽ broadcast đúng với mảng gốc a.

Tham số thứ năm là giá trị tối thiểu của một phần tử đầu ra. Phải có mặt để cho phép tính toán trên các phân đoạn rỗng.

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

Trước tiên, nhập thư viện cần thiết:

import numpy as np

Tạo mảng NumPy bằng phương thức array(). Chúng ta thêm các phần tử kiểu int với NaN và NINF (âm vô cùng):

arr = np.array([[25, 50, 75], [90, np.nan, np.NINF]])

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)

Để trả về giá trị lớn nhất của mảng hoặc bỏ qua NaN, sử dụng numpy.nanmax():

print("\nKết quả (nanmax)...\n", np.nanmax(arr))

Ví dụ hoàn chỉnh

import numpy as np

# Tạo mảng NumPy bằng array()
# Thêm các phần tử kiểu int với nan và NINF (âm vô cùng)
arr = np.array([[25, 50, 75], [90, np.nan, np.NINF]])

# 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 giá trị lớn nhất của toàn mảng, bỏ qua NaN
print("\nKết quả (nanmax)...\n", np.nanmax(arr))

Kết quả đầu ra

Mảng của chúng ta...
 [[ 25.  50.  75.]
 [ 90. nan -inf]]
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)...
 90.0

Giải thích: Khi không chỉ định axis, hàm làm phẳng mảng và tìm giá trị lớn nhất tổng thể. Các giá trị: 25, 50, 75, 90, NaN, -inf → lớn nhất là 90.0 (NaN và -inf bị bỏ qua).