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

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


บทนำ

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

พารามิเตอร์ที่สอง axis คือแกนหรือแกนๆ ที่คำนวณค่าสูงสุด ค่าเริ่มต้นคือคำนวณค่าสูงสุดของอาร์เรย์ที่แบน (flattened) พารามิเตอร์ที่สาม out คืออาร์เรย์เอาต์พุทสำรองสำหรับวางผลลัพธ์ ค่าเริ่มต้นคือ None หากระบุ ต้องมีรูปร่างเหมือนกับเอาต์พุทที่คาดหวัง แต่ชนิดจะถูกแปลงหากจำเป็น

พารามิเตอร์ที่สี่ keepdims หากตั้งเป็น True แกนที่ถูกลดรูปจะถูกทิ้งไว้ในผลลัพธ์เป็นมิติที่มีขนาดหนึ่ง ด้วยตัวเลือกนี้ ผลลัพธ์จะสามารถ broadcast ได้อย่างถูกต้องกับ a ต้นฉบับ หากค่าเป็นอย่างอื่นนอกจากค่าเริ่มต้น keepdims จะถูกส่งผ่านไปยังเมธอด max ของ sub-classes ของ ndarray หากเมธอดของ sub-classes ไม่ได้ใช้งาน keepdims ข้อยกเว้นจะถูกยกขึ้น พารามิเตอร์ที่ห้าคือค่าต่ำสุดขององค์ประกอบเอาต์พุท ต้องมีอยู่เพื่ออนุญาตการคำนวณบนสไลด์ว่าง

ขั้นตอน

ขั้นแรก ให้นำเข้าไลบรารีที่จำเป็น:

import numpy as np

สร้างอาร์เรย์ NumPy โดยใช้เมธอด array() เราได้เพิ่มองค์ประกอบแบบ int พร้อมกับ nan และ NINF (ลบอนันต์):

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

แสดงอาร์เรย์:

print("อาร์เรย์ของเรา...\n", arr)

ตรวจสอบมิติ:

print("\nมิติของอาร์เรย์...\n", arr.ndim)

ดูชนิดข้อมูล:

print("\nชนิดข้อมูลของออบเจกต์อาร์เรย์...\n", arr.dtype)

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

print("\nผลลัพธ์ (nanmax)...\n", np.nanmax(arr))

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

import numpy as np
# สร้างอาร์เรย์ NumPy โดยใช้เมธอด array()
# เราได้เพิ่มองค์ประกอบแบบ int พร้อมกับ nan และ NINF (ลบอนันต์)
arr = np.array([[25, 50, 75], [90, np.nan, np.NINF]])
# แสดงอาร์เรย์
print("อาร์เรย์ของเรา...\n", arr)
# ตรวจสอบมิติ
print("\nมิติของอาร์เรย์...\n", arr.ndim)
# ดูชนิดข้อมูล
print("\nชนิดข้อมูลของออบเจกต์อาร์เรย์...\n", arr.dtype)
# เพื่อส่งคืนค่าสูงสุดของอาร์เรย์หรือค่าสูงสุดโดยละเว้น NaN ใดๆ ใช้ numpy.nanmax() ใน Python
print("\nผลลัพธ์ (nanmax)...\n", np.nanmax(arr))

ผลลัพธ์

อาร์เรย์ของเรา...
 [[ 25.  50.  75.]
 [ 90. nan -inf]]
มิติของอาร์เรย์...
 2
ชนิดข้อมูลของออบเจกต์อาร์เรย์...
 float64
ผลลัพธ์ (nanmax)...
 90.0