---
title: numpy linspace — สร้าง array ของจุดที่เว้นระยะเท่ากันแบบแน่นอน
url: https://www.thepexcel.com/functions/python/creation/numpy-linspace/
type: function-explainer
program: Python
syntax: "np.linspace(start, stop, num, endpoint)"
date: 2026-05-31
scores:
  popularity: 5
  difficulty: 3
  usefulness: 5
---

# numpy linspace — สร้าง array ของจุดที่เว้นระยะเท่ากันแบบแน่นอน

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

## คำอธิบาย

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

## Syntax

```excel
np.linspace(start, stop, num, endpoint)
```

## Arguments

| Name | Required | Type | Default | Description |
| --- | --- | --- | --- | --- |
| start | Yes | float |  | ค่าเริ่มต้นของช่วง จะรวมอยู่ในผลลัพธ์เสมอครับ |
| stop | Yes | float |  | ค่าสิ้นสุดของช่วง ถ้า endpoint=True (default) จะรวมค่านี้ด้วย ถ้า endpoint=False จะไม่รวมครับ |
| num | No | int | 50 | จำนวน point ที่ต้องการในผลลัพธ์ ค่า default คือ 50 ครับ กำหนดตามที่ต้องการได้เลย เช่น 5 หรือ 100 |
| endpoint | No | bool | True | ถ้า True (default) จะรวม stop ในผลลัพธ์ด้วย ถ้า False จะไม่รวม stop — มีประโยชน์ตอนสร้าง array แบบวนรอบเช่นมุม 0–360 องศาครับ |

## ตัวอย่าง

### 1. ตัวอย่างที่ 1: สร้าง 5 จุดระหว่าง 0 ถึง 1

```excel
np.linspace(0, 1, 5)
```

**ผลลัพธ์:** `[0.   0.25 0.5  0.75 1.  ]`

ผมบอกว่าต้องการ 5 จุดระหว่าง 0 ถึง 1 NumPy คำนวณระยะห่างให้เองได้ 0.0, 0.25, 0.5, 0.75, 1.0 ครับ ทั้ง start และ stop รวมอยู่ในผลลัพธ์เสมอ นี่คือข้อต่างกับ np.arange ที่ไม่รวม stop

### 2. ตัวอย่างที่ 2: สร้างแกน x สำหรับกราฟ sine

```excel
np.linspace(0, 2 * np.pi, 6)
```

**ผลลัพธ์:** `[0.         1.25663706 2.51327412 3.76991118 5.02654825 6.28318531]`

อันนี้คือ use case ที่ผมใช้บ่อยที่สุดครับ สร้าง 6 จุดระหว่าง 0 ถึง 2π เพื่อเอาไปวาดกราฟ ใน production จริงผมมักใช้ 100-200 จุดเพื่อความเรียบ แต่ตัวอย่างนี้ใช้ 6 จุดเพื่อให้เห็นค่าชัดเจนครับ

### 3. ตัวอย่างที่ 3: endpoint=False สำหรับช่วงแบบวนรอบ

```excel
np.linspace(0, 360, 4, endpoint=False)
```

**ผลลัพธ์:** `[  0.  90. 180. 270.]`

ผมใช้ endpoint=False เมื่อต้องการสร้างมุม 4 ทิศที่เว้นเท่ากัน 0°, 90°, 180°, 270° ถ้าปล่อย default (endpoint=True) จะได้ 0°, 120°, 240°, 360° ซึ่ง 360° = 0° มันจะซ้ำกันตอนวนรอบครับ

### 4. ตัวอย่างที่ 4: เปรียบเทียบ linspace กับ arange บนช่วงเดียวกัน

```excel
np.linspace(0, 1, 5).shape[0] == len(np.arange(0, 1.001, 0.25))
```

**ผลลัพธ์:** `True`

ผมจงใจเปรียบเทียบให้เห็นว่า linspace กำหนดจำนวน point โดยตรง (5 จุดพอดี) ส่วน arange ต้องคำนวณ step เองว่า 0.25 จะได้กี่จุด และต้องระวัง floating point ที่อาจทำให้ได้ 4 หรือ 5 จุดก็ได้ครับ linspace ชัดเจนกว่ามาก

## หมายเหตุเพิ่มเติม

- 💡 ผมแนะนำ linspace แทน arange เสมอเวลาสร้าง array สำหรับกราฟครับ เพราะไม่ต้องมานั่งคิดว่า step เท่าไหร่ถึงจะได้จุดสุดท้ายพอดี แค่บอก 'ต้องการ 100 จุด' จบเลย

- ส่วนตัวผมใช้ endpoint=False บ่อยมากตอนสร้างมุมวงกลม เช่น np.linspace(0, 2*np.pi, 8, endpoint=False) ได้ 8 ทิศเท่ากันพอดีโดยไม่ซ้ำจุดเริ่มต้น ใช้วาด polygon หรือ radar chart ได้ดีมากครับ

## คำถามที่พบบ่อย

**Q: linspace ต่างจาก arange ยังไง ใช้ตัวไหนดี?**

ผมจำง่ายๆ ว่า linspace = กำหนด 'กี่จุด' ส่วน arange = กำหนด 'step เท่าไหร่' ครับ ถ้าต้องการ 100 จุดระหว่าง 0 ถึง 1 ใช้ linspace(0, 1, 100) ได้เลย แต่ถ้าต้องการเลขกระโดดทีละ 5 ใช้ arange(0, 100, 5) แทน นอกจากนี้ linspace ยังแม่นยำกว่าสำหรับทศนิยมเพราะไม่มีปัญหา floating point drift แบบ arange

**Q: num=50 ค่า default เยอะไปไหม สำหรับงานทั่วไป?**

ขึ้นอยู่กับงานครับ สำหรับกราฟทั่วไป 50-100 จุดก็พอให้เส้นเรียบสวย ผมมักใช้ 100 เพื่อความ smooth แต่ถ้าเป็นแค่ชุดค่าทดสอบหรือต้องการ debug ก็ใช้ 5-10 จุดก่อนได้ครับ ค่า default 50 เหมาะกับการสร้าง array สำหรับพล็อตกราฟทั่วไปพอดีเลย

**Q: สามารถใช้กับ 2 มิติได้ไหม เช่น สร้าง grid ของจุด?**

ได้เลยครับ ผมมักใช้คู่กับ np.meshgrid เช่น x = np.linspace(-1, 1, 50); y = np.linspace(-1, 1, 50); XX, YY = np.meshgrid(x, y) ก็ได้ grid 50×50 จุดสำหรับวาด contour plot หรือ surface plot สวยๆ เลย

## แหล่งข้อมูลเพิ่มเติม

- [numpy.linspace — NumPy official docs](https://numpy.org/doc/stable/reference/generated/numpy.linspace.html) _(article)_

---

_Source: [https://www.thepexcel.com/functions/python/creation/numpy-linspace/](https://www.thepexcel.com/functions/python/creation/numpy-linspace/)_
