Thep Excel

numpy argmax — หาตำแหน่ง (index) ของค่าสูงสุดใน array

np.argmax ผมใช้หา index หรือตำแหน่งของค่าที่มากที่สุดใน array ครับ ย้ำว่ามันคืน “ตำแหน่ง” ไม่ใช่ “ตัวค่า” ถ้าใครเคยใช้ Excel มาก่อน ตัวนี้คือ MATCH(MAX(range), range, 0) นั่นเองครับ

np.argmax(a, axis)

By ThepExcel AI Agent
31 May 2026

Function Metrics


Popularity
5/10

Difficulty
2/10

Usefulness
5/10

Syntax & Arguments

np.argmax(a, axis)

คืนค่า (Returns)
int64

สำหรับ array 1 มิติ argmax คืนค่าเป็นเลขจำนวนเต็มตัวเดียว (numpy int64) ที่บอกตำแหน่ง index ของค่าสูงสุดครับ ถ้าใส่ axis กับ array หลายมิติ จะได้กลับมาเป็น array ของตำแหน่งแทน

Argument Type Required Default Description
a array_like Yes array (หรือ list) ที่จะหาตำแหน่งของค่าสูงสุด เช่น np.array([3, 7, 2]) — argmax จะคืน index ของค่ามากที่สุดในนั้น
axis int Optional None แกนที่จะหาตามนั้น สำหรับ array 2 มิติ axis=0 คือหาตามแต่ละคอลัมน์ (ไล่ลงในแนวตั้ง) axis=1 คือหาตามแต่ละแถว ถ้าไม่ใส่ numpy จะแผ่ array ให้แบนเป็นเส้นเดียวก่อนแล้วค่อยหา

Examples

ตัวอย่างที่ 1: หาตำแหน่งค่าสูงสุดใน array 1 มิติ
np.argmax(a)
array นี้ค่ามากที่สุดคือ 9 ซึ่งอยู่ตำแหน่งที่ 3 (numpy นับ 0, 1, 2, 3) ผมเลยได้คำตอบเป็น 3 ครับ ย้ำอีกที — ได้ "ตำแหน่ง" นะ ไม่ใช่เลข 9
Python Code:

np.argmax(a)

Result:

3

ตัวอย่างที่ 2: array 2 มิติ ระบุ axis ว่าจะหาตามแถวหรือคอลัมน์
np.argmax(a, axis=1)
ผมใส่ axis=1 เพื่อหาตำแหน่งค่าสูงสุดของแต่ละแถว แถวแรก [3, 7, 2] ค่ามากสุด 7 อยู่ตำแหน่ง 1 ส่วนแถวสอง [9, 1, 8] ค่ามากสุด 9 อยู่ตำแหน่ง 0 ผลเลยออกมาเป็น [1, 0] ครับ ถ้าเปลี่ยนเป็น axis=0 จะเป็นการไล่หาตามคอลัมน์แทน
Python Code:

np.argmax(a, axis=1)

Result:

[1 0]

ตัวอย่างที่ 3: เทียบ argmax กับ max ให้เห็นว่าได้คนละอย่าง
(np.argmax(a), np.max(a))
ตัวอย่างนี้ผมจับคู่ให้ดูชัดๆ ครับ np.argmax(a) ได้ 3 = ตำแหน่งของค่ามากสุด ส่วน np.max(a) ได้ 9 = ตัวค่ามากสุดจริงๆ สองตัวนี้คนละหน้าที่กัน เวลาอ่านโค้ดอย่าสลับกันนะครับ
Python Code:

(np.argmax(a), np.max(a))

Result:

(np.int64(3), np.int64(9))

FAQs

argmax กับ max ต่างกันยังไง?

ต่างกันที่สิ่งที่คืนมาครับ np.max คืน “ค่า” ที่มากที่สุด ส่วน np.argmax คืน “ตำแหน่ง (index)” ของค่าที่มากที่สุด เช่น array [3, 7, 2] np.max ได้ 7 แต่ np.argmax ได้ 1 ผมจำง่ายๆ ว่าคำว่า arg ข้างหน้าแปลว่า argument หรือ “ตำแหน่ง” ของมันนั่นเอง

ถ้ามีค่าสูงสุดเท่ากันหลายตัว argmax จะตอบตำแหน่งไหน?

argmax จะคืนตำแหน่งของตัว “แรกสุด” ที่เจอครับ เช่น [1, 5, 5, 2] ค่า 5 มีสองตัว argmax จะตอบ 1 (ตัวซ้ายสุด) ไม่ใช่ 2 ตรงนี้เหมือน MATCH ใน Excel เป๊ะเลยครับ ที่จะเจอตัวแรกที่ตรงก่อน

อยากได้ตำแหน่งค่าต่ำสุดบ้างต้องใช้อะไร?

ใช้ np.argmin ครับ ทำงานเหมือนกันทุกอย่าง แค่หาตำแหน่งของค่าน้อยที่สุดแทน ใส่ axis ได้เหมือนกัน ถ้าจำ argmax ได้ argmin ก็เป็นของแถมเลยครับ

Resources & Related

Additional Notes

เวลาผมอ่านโค้ด numpy ที่ AI เขียนมา np.argmax เป็นตัวที่เจอบ่อยมากครับ แต่คนชอบเข้าใจผิดกันเยอะ เพราะคำว่า max ในชื่อทำให้นึกว่ามันคืนค่าที่มากที่สุด — จริงๆ ไม่ใช่นะครับ มันคืน index (ตำแหน่ง) ของค่าที่มากที่สุดต่างหาก

คิดง่ายๆ ว่าถ้า array คือ [3, 7, 2] np.argmax จะตอบ 1 เพราะค่ามากสุด (7) อยู่ตำแหน่งที่ 1 (numpy นับ index เริ่มจาก 0 นะครับ) ส่วนตัวเลข 7 เองถ้าอยากได้ต้องใช้ np.max แทน

ที่เจ๋งคือถ้าใครคุ้นกับ Excel จะเห็นภาพทันที — np.argmax(a) ก็คือ MATCH(MAX(a), a, 0) ในคำสั่งเดียว หาตำแหน่งของค่ามากสุดให้เลย ไม่ต้องเขียนซ้อนสองชั้นเหมือน Excel ครับ และพอใช้กับ array 2 มิติ ยังระบุ axis ได้ว่าจะหาตามแถวหรือตามคอลัมน์ด้วย

ส่วนตัวผมใช้ argmax บ่อยสุดตอนทำ machine learning ครับ เวลาโมเดลทำนายความน่าจะเป็นของแต่ละ class ออกมา แล้วเราอยากรู้ว่า class ไหนได้คะแนนสูงสุด ก็ยิง np.argmax ทีเดียวจบ ได้เลขตำแหน่ง class ที่โมเดลมั่นใจที่สุดมาเลย 😎

Leave a Reply

Your email address will not be published. Required fields are marked *