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

คืนค่าต่ำสุดของอาร์เรย์ที่มีค่าอนันต์ลบ หรือข้าม NaN ใน Python

หากต้องการคืนค่าต่ำสุด (minimum) ของอาร์เรย์ หรือค่าต่ำสุดโดยข้ามค่า NaN ให้ใช้เมธอด numpy.nanmin() ใน Python เมธอดนี้จะคืนค่าอาร์เรย์ที่มีรูปร่างเหมือนเดิม แต่ลบแกน (axis) ที่ระบุออกไป หาก a เป็นอาร์เรย์ 0 มิติ หรือ axis เป็น None จะคืนค่าเป็นสเกลาร์ ndarray ชนิดข้อมูล (dtype) เดียวกับ a จะถูกคืนค่ากลับ

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

  • a: อาร์เรย์ที่มีตัวเลขซึ่งต้องการหาค่าต่ำสุด
  • axis: แกนที่คำนวณค่าต่ำสุด (default: None = flattened array)
  • out: อาร์เรย์สำหรับเก็บผลลัพธ์ (optional)
  • keepdims: เก็บมิติที่ลดรูปไว้เป็นขนาด 1 (default: False)
  • initial: ค่าสูงสุดขององค์ประกอบผลลัพธ์ (สำหรับ slice ว่าง)

ขั้นตอนการใช้งาน

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

import numpy as np

2. สร้างอาร์เรย์ NumPy พร้อม NaN และ NINF (negative infinity)

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

3. แสดงอาร์เรย์

print("Our Array...\n", arr)

4. ตรวจสอบมิติ

print("\nDimensions of our Array...\n", arr.ndim)

5. ตรวจสอบชนิดข้อมูล

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

6. หาค่าต่ำสุดของอาร์เรย์ทั้งหมด (ไม่ระบุ axis) โดยข้าม NaN

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

ตัวอย่างโค้ดเต็ม

import numpy as np

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

# แสดงอาร์เรย์
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 (nanmin)...\n", np.nanmin(arr))

ผลลัพธ์ที่ได้

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

คำอธิบายเพิ่มเติม

เมธอด np.nanmin() ทำงานคล้าย np.min() แต่ ข้ามค่า NaN ไปโดยอัตโนมัติ

ในตัวอย่าง อาร์เรย์ 2x3 มีค่า: 25, 50, 75, 90, NaN, -inf

  • ค่า NaN ถูกข้าม
  • ค่า -inf (negative infinity) เป็นค่าต่ำสุดทางคณิตศาสตร์
  • ผลลัพธ์: -inf

จุดสำคัญ: nanmin ไม่ข้ามค่าอนันต์ (inf/-inf) แต่ข้ามเฉพาะ NaN เท่านั้น ดังนั้นหากอาร์เรย์มี -inf ผลลัพธ์จะเป็น -inf เสมอ

หากต้องการข้ามค่าอนันต์ด้วย ต้องกรองค่าอนันต์ออกก่อน หรือใช้ฟังก์ชันอื่น

การใช้งานทั่วไป: การหาค่าต่ำสุดของข้อมูลที่มี missing values (NaN) เช่น ข้อมูลเซนเซอร์ ข้อมูลทางการเงิน ข้อมูลวิทยาศาสตร์

คืนค่าต่ำสุดของอาร์เรย์ที่มีค่าอนันต์ลบ หรือข้าม NaN ใน Python

ใช้ numpy.nanmin() หาค่าต่ำสุดข้าม NaN แต่ไม่ข้าม -inf อาร์เรย์มี -inf ผลลัพธ์คือ -inf