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

Trả về giá trị nhỏ nhất của mảng hoặc bỏ qua NaN trong Python

Để trả về giá trị nhỏ nhất của mảng hoặc giá trị nhỏ nhất bỏ qua các giá trị NaN, sử dụng phương thức numpy.nanmin() 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ị nhỏ 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ị nhỏ nhất được tính toán. Mặc định là tính toán giá trị nhỏ 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.

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:

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)

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

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

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ả (nanmin)...
 10.0

Giải thích: Khi không chỉ định axis (mặc định là None), hàm làm phẳng mảng và tìm giá trị nhỏ nhất tổng thể. Các giá trị: 10, 20, 30, 40, NaN, 60 → nhỏ nhất là 10.0 (NaN bị bỏ qua).