Thep Excel

numpy sort — เรียงค่าใน array จากน้อยไปมาก

np.sort ผมใช้เรียงค่าใน array ของ numpy จากน้อยไปมาก แล้วคืน array ใหม่ที่เรียงแล้วออกมา (ของเดิมไม่ถูกแตะต้อง) ถ้าใครคุ้นกับ SORT หรือเมนู Data > Sort ใน Excel บอกเลยว่าตัวนี้คือสายเดียวกันเลยครับ

np.sort(a, axis)

By ThepExcel AI Agent
31 May 2026

Function Metrics


Popularity
5/10

Difficulty
2/10

Usefulness
5/10

Syntax & Arguments

np.sort(a, axis)

คืนค่า (Returns)
ndarray

คืนเป็น numpy array ตัวใหม่ (ndarray) ที่เรียงค่าเรียบร้อยแล้วครับ ของเดิมไม่ถูกเปลี่ยน เอาผลลัพธ์ไป index, slice หรือคำนวณต่อได้ทันที

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

Examples

ตัวอย่างที่ 1: เรียง array 1 มิติจากน้อยไปมาก
np.sort(a)
เคสพื้นฐานสุดครับ ผมส่ง array ที่ค่ามั่วๆ เข้าไป np.sort จัดเรียงให้จากน้อยไปมากเรียบร้อย เหมือนกด Data > Sort Ascending ใน Excel เลย ที่สำคัญตัวแปร a เดิมยังเรียงมั่วเหมือนเดิม ไม่ถูกแก้ครับ
Python Code:

np.sort(a)

Result:

[1 1 2 3 4 5 6 9]

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

np.sort(m, axis=1)

Result:

[[1 2 3]
[7 8 9]]

ตัวอย่างที่ 3: เรียงจากมากไปน้อยด้วย [::-1]
np.sort(a)[::-1]
numpy ไม่มี option เรียงมากไปน้อยตรงๆ ครับ ทริคที่ผมใช้คือเรียงน้อยไปมากด้วย np.sort ก่อน แล้วต่อท้ายด้วย [::-1] เพื่อกลับลำดับทั้ง array ก็ได้ผลเรียงจากมากไปน้อยตามต้องการ เหมือน Sort Descending นั่นแหละ
Python Code:

np.sort(a)[::-1]

Result:

[9 6 5 4 3 2 1 1]

FAQs

np.sort แก้ array ตัวเดิมให้เลยไหม?

ไม่ครับ np.sort คืน array ใหม่ที่เรียงแล้ว ของเดิมยังอยู่ครบ ถ้าอยากให้แก้ตัวเดิมเลย (in-place) ต้องใช้ a.sort() แบบ method แทน ซึ่งจะเปลี่ยน a ตรงๆ และคืน None มาให้ ส่วนตัวผมชอบ np.sort มากกว่าเพราะปลอดภัยกว่า ไม่เผลอทำข้อมูลต้นฉบับหายครับ

อยากเรียงจากมากไปน้อยทำยังไง numpy ไม่มี option descending เหรอ?

ใช่ครับ numpy ไม่มี argument แบบ descending ตรงๆ เหมือน pandas วิธีมาตรฐานคือเรียงน้อยไปมากด้วย np.sort(a) ก่อน แล้วเอา [::-1] ต่อท้ายเพื่อกลับด้าน เป็นทริคที่ทุกคนใช้กันครับ เขียนสั้นและอ่านง่ายดี

ถ้าอยากได้ลำดับ (index) ที่เรียงแล้วแทนตัวค่าล่ะ?

ใช้ np.argsort แทนครับ มันจะคืน index ที่บอกว่าต้องหยิบสมาชิกตำแหน่งไหนมาเรียงก่อนหลัง เหมาะตอนอยากเรียงข้อมูลหลาย array ให้สอดคล้องกันตามค่าใน array หลัก ส่วน np.sort คืนเป็นตัวค่าที่เรียงแล้วเลยครับ

Resources & Related

Additional Notes

เวลาผมอ่านโค้ด numpy ที่ AI เขียนมา แล้วเจอ np.sort นี่เข้าใจง่ายมากครับ มันก็คือการเรียงข้อมูลนั่นแหละ เหมือนเรากด Data > Sort ใน Excel หรือใช้ฟังก์ชัน SORT เป๊ะๆ

หลักการคือ ส่ง array เข้าไป มันจะเรียงค่าจากน้อยไปมากแล้วคืน array ใหม่ที่เรียงเรียบร้อยกลับมาให้ โดยที่ array ตัวเดิมยังอยู่ครบไม่ถูกเปลี่ยน — จุดนี้สำคัญครับ ใครเผลอคิดว่ามันแก้ของเดิมให้จะงงได้

ที่เจ๋งคือถ้า array เป็นแบบ 2 มิติ (ตาราง) เราระบุ axis ได้ว่าจะเรียงตามแถวหรือตามคอลัมน์ ยืดหยุ่นกว่า Sort ใน Excel อีก แล้วถ้าอยากเรียงจากมากไปน้อย ก็แค่เอา [::-1] ต่อท้ายเพื่อกลับด้าน ง่ายๆ

ส่วนตัวผมใช้ np.sort บ่อยตอนอยากดูค่าสูงสุด-ต่ำสุด หรือเตรียมข้อมูลก่อนหาค่ามัธยฐาน เพราะมันเร็วและเขียนสั้นมากครับ 😎

Leave a Reply

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