---
title: numpy arange — สร้าง array ของเลขเรียงตามช่วงที่กำหนด
url: https://www.thepexcel.com/functions/python/creation/numpy-arange/
type: function-explainer
program: Python
syntax: np.arange(stop)
date: 2026-05-31
scores:
  popularity: 5
  difficulty: 3
  usefulness: 5
---

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

> np.arange ใน NumPy ผมใช้สำหรับสร้าง array ของเลขที่เรียงกันตามช่วงที่กำหนด คล้ายกับ range() ใน Pytho

## คำอธิบาย

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

## Syntax

```excel
np.arange(stop)
```

## Arguments

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

## ตัวอย่าง

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

```excel
np.arange(5)
```

**ผลลัพธ์:** `[0 1 2 3 4]`

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

### 2. ตัวอย่างที่ 2: กำหนดช่วงเริ่มต้นและสิ้นสุด

```excel
np.arange(10, 21)
```

**ผลลัพธ์:** `[10 11 12 13 14 15 16 17 18 19 20]`

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

### 3. ตัวอย่างที่ 3: กำหนด step แบบทศนิยม

```excel
np.arange(0, 1, 0.25)
```

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

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

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

- ผมแนะนำให้ใช้ np.arange ตอนรู้ step ชัดเจน แต่ถ้ารู้จำนวน point ที่ต้องการให้ใช้ np.linspace แทนครับ จะแม่นยำกว่ามากสำหรับช่วงทศนิยม

- ส่วนตัวผมมักต่อด้วย .reshape() เพื่อแปลงเป็น matrix ได้เลย เช่น np.arange(12).reshape(3, 4) ได้ matrix 3×4 ทันที ไม่ต้องสร้างแยกครับ

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

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

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

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

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

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

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

---

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