Thep Excel

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

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

>_
np.arange(stop)

ความนิยม5/10
ความยาก3/10
ประโยชน์5/10

อัปเดต 31 May 2026

Syntax & Arguments

คืนค่าndarray

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

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

[ ] = อาร์กิวเมนต์ที่ไม่บังคับ

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 แทนครับ

Examples

ตัวอย่างที่ 1: สร้าง array เลข 0 ถึง 4np.arange(5)

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

>_
np.arange(5)

ผลลัพธ์[0 1 2 3 4]
ตัวอย่างที่ 2: กำหนดช่วงเริ่มต้นและสิ้นสุดnp.arange(10, 21)

คราวนี้ผมระบุทั้ง start=10 และ stop=21 เลย ได้เลข 10 ถึง 20 ออกมาครับ ใช้บ่อยตอนต้องการช่วงที่ไม่ได้เริ่มจาก 0

>_
np.arange(10, 21)

ผลลัพธ์[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 ของกราฟได้เลย

>_
np.arange(0, 1, 0.25)

ผลลัพธ์[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

ฟังก์ชันที่ผู้เขียนโยงไว้กับ numpy arange จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง

ฟังก์ชันนี้numpy arangeCreation
Creation (3)
numpy array

np.array คือประตูหน้าบ้านของ NumPy ครับ ผมใช้มันแปลง Python list หรือ nested list ให้กลายเป็น ndarray ที่ทำ vectorized operations ได้ทันที โดยไม่ต้องวน loop เองเลยแม้แต่บรรทัดเดียว

numpy linspace

np.linspace ใน NumPy ผมใช้สำหรับสร้าง array ของตัวเลขที่กระจายเท่ากันระหว่างค่าเริ่มต้นและค่าสิ้นสุด โดยกำหนดจำนวน point ที่ต้องการพอดี แทนที่จะกำหนด step เหมาะมากสำหรับสร้างแกน x ของกราฟหรือสร้างชุดค่าทดสอบที่ต้องการความแม่นยำสูงครับ

numpy zeros

np.zeros ใน NumPy ผมใช้สำหรับสร้าง array ที่เต็มไปด้วยค่า 0 ทุกช่อง คล้ายกับการ "จองที่" ไว้ก่อนแล้วค่อยเติมข้อมูลทีหลัง ใช้บ่อยมากตอน AI ต้องเตรียม array ว่างไว้รับผลลัพธ์หรือสร้าง weight matrix เริ่มต้นครับ

Aggregation (2)
numpy mean

np.mean ใน NumPy ผมใช้สำหรับคำนวณค่าเฉลี่ยเลขคณิตของ array หรือของแต่ละแถว/คอลัมน์ใน matrix ได้ในคำสั่งเดียว เร็วกว่าเขียน sum/len เองหลายเท่า และยังรองรับข้อมูลหลายมิติได้ด้วยครับ

numpy sum

np.sum ใน NumPy ผมใช้สำหรับรวมค่าทุกตัวใน array หรือรวมตามแถว/คอลัมน์ใน matrix ได้ในคำสั่งเดียว เหมือนฟังก์ชัน SUM ใน Excel แต่ทำงานกับ array หลายมิติและเร็วกว่าการวน loop เองมากครับ

Transform (1)
numpy reshape

arr.reshape ใน NumPy ผมใช้สำหรับเปลี่ยนรูปร่าง (shape) ของ array โดยจำนวนสมาชิกทั้งหมดยังคงเดิม เช่น แปลง 1D array 12 ตัวให้กลายเป็น matrix 3×4 ได้ทันที โดยไม่ต้องสร้างข้อมูลใหม่ครับ

Logic (1)
numpy where

numpy.where ผมใช้เลือกค่าจาก array ตามเงื่อนไขที่กำหนดครับ ถ้าให้เทียบง่ายๆ มันคือ IF ใน Excel นั่นแหละ แต่เก่งกว่าตรงที่ทำงานกับข้อมูลทั้ง array พร้อมกันในทีเดียว แถมยังใส่อาร์กิวเมนต์เดียวเพื่อหา index ที่ตรงเงื่อนไขได้อีกด้วย

Comments

อีเมลของคุณจะไม่ถูกเผยแพร่