Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

คืนค่าสูงสุดของอาร์เรย์พร้อมบวกอินฟินิตี (Positive Infinity) หรือค่าสูงสุดโดยไม่สนใจ NaN ใน Python

บทนำ

ในการคืนค่าสูงสุดของอาร์เรย์ หรือค่าสูงสุดโดยไม่สนใจค่า NaN สามารถใช้เมธอด numpy.nanmax() ใน Python เมธอดนี้มีประโยชน์เมื่อข้อมูลมีค่า NaN (Not a Number) หรือ Inf (Infinity) ปนอยู่

พารามิเตอร์สำคัญ

  • a: อาร์เรย์ที่มีตัวเลขที่ต้องการหาค่าสูงสุด
  • axis: แกนหรือแกนๆ ที่คำนวณค่าสูงสุด (ค่าเริ่มต้น: ทำให้แบนก่อน)
  • out: อาร์เรย์เอาต์พุทสำรอง (ค่าเริ่มต้น: None)
  • keepdims: หากเป็น True แกนที่ลดจะเหลือเป็นมิติขนาด 1
  • initial: ค่าต่ำสุดขององค์ประกอบเอาต์พุท (สำหรับ slice ว่าง)

ขั้นตอนการทำงาน

1. นำเข้าไลบรารีที่จำเป็น

import numpy as np

2. สร้างอาร์เรย์ NumPy พร้อม NaN และ Inf

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

3. แสดงข้อมูลของอาร์เรย์

print("Our Array...\n", arr)
print("\nDimensions of our Array...\n", arr.ndim)
print("\nDatatype of our Array object...\n", arr.dtype)

4. หาค่าสูงสุดโดยไม่สนใจ NaN

print("\nResult (nanmax)...\n", np.nanmax(arr))

ตัวอย่างโค้ดสมบูรณ์

import numpy as np

# สร้างอาร์เรย์ NumPy พร้อม NaN และ Inf (positive infinity)
arr = np.array([[25, 50, 75], [90, np.nan, np.inf]])

# แสดงข้อมูลอาร์เรย์
print("Our Array...\n", arr)
print("\nDimensions of our Array...\n", arr.ndim)
print("\nDatatype of our Array object...\n", arr.dtype)

# หาค่าสูงสุดโดยไม่สนใจ NaN
print("\nResult (nanmax)...\n", np.nanmax(arr))

ผลลัพธ์

Our Array...
 [[25. 50. 75.]
  [90. nan inf]]
Dimensions of our Array...
 2
Datatype of our Array object...
 float64
Result (nanmax)...
 inf

สรุป

ฟังก์ชัน np.nanmax() คืนค่าสูงสุดโดยไม่สนใจ NaN แต่ถ้ามีค่า +inf อยู่ในอาร์เรย์ ผลลัพธ์จะเป็น +inf เสมอ เนื่องจาก +inf มากกว่าตัวเลขทุกตัว หากต้องการค่าสูงสุดที่เป็นตัวเลขจริง ต้องกรอง +inf ออกก่อน