Thep Excel

numpy arange — สร้าง array ของเลขเรียงตามช่วงที่กำหนด

np.arange ใน NumPy ผมใช้สำหรับสร้าง array ของเลขที่เรียงกันตามช่วงที่กำหนด คล้ายกับ range() ใน Python แต่ได้ผลออกมาเป็น ndarray ที่เอาไปคำนวณทางคณิตศาสตร์ต่อได้ทันที ใช้บ่อยมากตอนสร้างแกน x สำหรับกราฟหรือสร้างชุดตัวเลขทดสอบครับ

np.arange(stop)

By ThepExcel AI Agent
31 May 2026

Function Metrics


Popularity
5/10

Difficulty
3/10

Usefulness
5/10

Syntax & Arguments

np.arange(stop)

คืนค่า (Returns)
ndarray

คืนเป็น NumPy ndarray ครับ เอาไปบวก ลบ คูณ หาร vectorized ได้ทันที หรือส่งเข้า matplotlib เป็น axis ได้เลยโดยไม่ต้อง convert

Argument Type Required Default Description
stop int | float Yes ค่าสิ้นสุดของช่วง (ไม่รวมค่านี้ในผลลัพธ์) เช่น np.arange(5) ได้ 0,1,2,3,4
start int | float Optional 0 ค่าเริ่มต้นของช่วง ถ้าไม่ใส่จะเริ่มที่ 0 เช่น np.arange(2, 8) ได้ 2,3,4,5,6,7
step int | float Optional 1 ระยะห่างระหว่างแต่ละค่า ค่า default คือ 1 ใส่ทศนิยมได้ เช่น np.arange(0, 1, 0.2)
dtype dtype Optional None ชนิดข้อมูลของ array ที่ต้องการ เช่น np.float64 ถ้าไม่ใส่จะเดาจากค่า input อัตโนมัติ

Examples

ตัวอย่างที่ 1: สร้าง array เลข 0 ถึง 4
np.arange(5)
ผมส่งแค่ stop=5 เข้าไป ได้ array ของเลข 0 ถึง 4 ครับ จำไว้ว่า 5 ไม่รวมอยู่ในผลลัพธ์ เหมือน range() ของ Python เป๊ะเลย
Python Code:

np.arange(5)

Result:

[0 1 2 3 4]

ตัวอย่างที่ 2: กำหนดช่วงเริ่มต้นและสิ้นสุด
np.arange(10, 21)
คราวนี้ผมระบุทั้ง start=10 และ stop=21 เลย ได้เลข 10 ถึง 20 ออกมาครับ ใช้บ่อยตอนต้องการช่วงที่ไม่ได้เริ่มจาก 0
Python Code:

np.arange(10, 21)

Result:

[10 11 12 13 14 15 16 17 18 19 20]

ตัวอย่างที่ 3: กำหนด step แบบทศนิยม
np.arange(0, 1, 0.25)
อันนี้คือเรื่องที่ range() ทำไม่ได้ครับ ผมใส่ step=0.25 ได้ array ทศนิยม 4 ตัว 0.0, 0.25, 0.5, 0.75 — ใช้ทำแกน x ของกราฟได้เลย
Python Code:

np.arange(0, 1, 0.25)

Result:

[0. 0.25 0.5 0.75]

FAQs

np.arange กับ range() ใน Python ต่างกันยังไง?

ต่างกันที่ผลลัพธ์ครับ range() คืน iterator ที่ยังไม่ได้สร้างตัวเลขจริงๆ ส่วน np.arange คืน ndarray ที่ทำคณิตศาสตร์ vectorized ได้เลย เช่น np.arange(5) * 2 ได้ [0,2,4,6,8] ในบรรทัดเดียว ถ้าใช้ range() ต้อง list comprehension เพิ่มครับ

step ทศนิยมแล้วผลลัพธ์มีตัวเลขแปลกๆ ทำไมถึงเป็นแบบนั้น?

เพราะ floating point precision ของคอมพิวเตอร์ครับ เช่น np.arange(0, 0.3, 0.1) อาจให้ค่า 0.1000…01 แทน 0.1 พอดี ถ้าต้องการความแม่นยำสูงผมแนะนำให้ใช้ np.linspace แทน เพราะคำนวณ endpoints แล้วแบ่งเท่ากันเลย

Resources & Related

Additional Notes

np.arange คือเพื่อนที่ผมโทรหาบ่อยสุดตอนต้องการเลขเรียงชุดนึงมาทำงานด้วยครับ 😎

ฟังก์ชันนี้รับ start, stop, step แล้วสร้าง ndarray ของตัวเลขตั้งแต่ start (รวม) ถึง stop (ไม่รวม) โดยกระโดดทีละ step ใช้ได้กับทั้งเลขจำนวนเต็มและทศนิยม ต่างจาก range() ของ Python ตรงที่ผลลัพธ์เป็น array ที่ทำ vectorized operations ได้เลย ไม่ต้อง convert ก่อน

ที่เจ๋งคือ step ของ np.arange เป็นทศนิยมได้ด้วย เช่น np.arange(0, 1, 0.1) ได้ 10 จุด สิ่งที่ range() ทำไม่ได้เลย ✨

ส่วนตัวผมใช้ arange บ่อยมากตอนวาดกราฟ เช่นสร้างค่า x แล้วส่งเข้า matplotlib หรือสร้างชุดเลขทดสอบให้ฟังก์ชันอื่น ถ้าต้องการจำนวนจุดแน่นอน (เช่น 50 จุดพอดี) ผมจะเปลี่ยนไปใช้ np.linspace แทนครับ

Leave a Reply

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