np.max
np.amax
เป็นเพียงนามแฝงสำหรับ ฟังก์ชันนี้ใช้งานได้เฉพาะกับอาร์เรย์อินพุตเดียวและค้นหาค่าขององค์ประกอบสูงสุดในอาร์เรย์ทั้งหมดนั้น (ส่งคืนสเกลาร์) หรือใช้axis
อาร์กิวเมนต์และจะหาค่าสูงสุดตามแกนของอาร์เรย์อินพุต (ส่งคืนอาร์เรย์ใหม่)
>>> a = np.array([[0, 1, 6],
[2, 4, 1]])
>>> np.max(a)
6
>>> np.max(a, axis=0) # max of each column
array([2, 4, 6])
พฤติกรรมเริ่มต้นnp.maximum
คือการใช้อาร์เรย์สองอาร์เรย์และคำนวณค่าสูงสุดขององค์ประกอบที่ชาญฉลาด ที่นี่ 'เข้ากันได้' หมายความว่าอาร์เรย์หนึ่งสามารถถ่ายทอดไปยังอีกอันหนึ่งได้ ตัวอย่างเช่น:
>>> b = np.array([3, 6, 1])
>>> c = np.array([4, 2, 9])
>>> np.maximum(b, c)
array([4, 6, 9])
แต่np.maximum
ยังเป็นฟังก์ชันสากลซึ่งหมายความว่ามีคุณสมบัติและวิธีการอื่น ๆ ที่มีประโยชน์เมื่อทำงานกับอาร์เรย์หลายมิติ ตัวอย่างเช่นคุณสามารถคำนวณค่าสูงสุดสะสมบนอาร์เรย์ (หรือแกนเฉพาะของอาร์เรย์):
>>> d = np.array([2, 0, 3, -4, -2, 7, 9])
>>> np.maximum.accumulate(d)
array([2, 2, 3, 3, 3, 7, 9])
นี้เป็นไปไม่ได้กับnp.max
.
คุณสามารถnp.maximum
เลียนแบบได้np.max
ในระดับหนึ่งเมื่อใช้np.maximum.reduce
:
>>> np.maximum.reduce(d)
9
>>> np.max(d)
9
การทดสอบขั้นพื้นฐานชี้ให้เห็นว่าทั้งสองแนวทางมีประสิทธิภาพเทียบเท่ากัน และควรจะเป็นตามที่np.max()
เรียกร้องnp.maximum.reduce
ให้ทำการคำนวณจริงๆ
amax
เพื่อวัตถุประสงค์ (root) เดียวกันmaximum
เช่นกับnumpy.amax([a1, a2], axis=0)
--- แต่สิ่งนี้ไม่เหมาะสำหรับพฤติกรรมนี้numpy.maximum
หรือไม่? ในทำนองเดียวกันสิ่งที่เพิ่มเข้ามาของnumpy.amax
(เช่นaxis
พารามิเตอร์) จะป้องกันไม่ให้เป็น aufunc
?