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

# numpy zeros — สร้าง array เต็มไปด้วยเลข 0 ตามขนาดที่กำหนด

> np.zeros ใน NumPy ผมใช้สำหรับสร้าง array ที่เต็มไปด้วยค่า 0 ทุกช่อง คล้ายกับการ "จองที่" ไว้ก่อนแล้ว

## คำอธิบาย

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

## Syntax

```excel
np.zeros(shape, dtype)
```

## Arguments

| Name | Required | Type | Default | Description |
| --- | --- | --- | --- | --- |
| shape | Yes | int \| tuple[int, ...] |  | ขนาดของ array ถ้าเป็น int เดียวได้ 1D array เช่น np.zeros(5) ถ้าเป็น tuple ได้ multi-dimensional เช่น np.zeros((2, 3)) ได้ array 2 แถว 3 คอลัมน์ |
| dtype | No | dtype | float64 | ชนิดข้อมูลของ array ค่า default คือ float64 (ทศนิยม) ถ้าต้องการจำนวนเต็มใส่ dtype=int หรือ dtype=np.int32 ได้เลย |

## ตัวอย่าง

### 1. ตัวอย่างที่ 1: สร้าง array 1D ขนาด 5 ช่อง

```excel
np.zeros(5)
```

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

ผมส่ง shape=5 เข้าไป ได้ array 1D ที่มี 5 ช่องทุกช่องเป็น 0.0 ครับ สังเกตว่าเป็น float64 (มีจุดทศนิยม) เป็น default เหมาะสำหรับงานคำนวณทั่วไป

### 2. ตัวอย่างที่ 2: สร้าง array 2D ขนาด 2 แถว 3 คอลัมน์

```excel
np.zeros((2, 3))
```

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

คราวนี้ผมใส่ tuple (2, 3) เพื่อสร้าง array 2 มิติ ได้ matrix 2 แถว 3 คอลัมน์ ทุกช่องเป็น 0.0 ครับ คิดเหมือนตาราง Excel ว่างๆ ขนาด 2×3 ที่รอให้เราเติมข้อมูล

### 3. ตัวอย่างที่ 3: สร้าง array จำนวนเต็มด้วย dtype=int

```excel
np.zeros(4, dtype=int)
```

**ผลลัพธ์:** `[0 0 0 0]`

ใส่ dtype=int ทำให้ได้ array ของเลข 0 แบบจำนวนเต็มครับ ไม่มีทศนิยม ผมใช้แบบนี้ตอนต้องการ array นับจำนวน เช่น นับความถี่หรือเก็บ index ต่างๆ

### 4. ตัวอย่างที่ 4: จองที่ array แล้วเติมค่าทีหลัง

```excel
result[2]
```

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

ผมสร้าง array zeros ไว้ก่อนแล้วเข้าถึงได้ด้วย index ครับ pattern นี้ใช้บ่อยมากในโค้ด AI — สร้าง np.zeros ขนาดที่ต้องการ แล้ววนลูปเติมค่าทีละช่อง แทนที่จะ append ซึ่งสร้าง array ใหม่ทุกรอบและช้ากว่ามาก

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

- ผมแนะนำให้รู้จัก np.ones ด้วยครับ ทำงานเหมือน np.zeros เป๊ะเลย แต่ค่า default เป็น 1 แทน 0 — ใช้บ่อยตอนสร้าง mask หรือ weight เริ่มต้นทั้งหมดเป็น 1

- ถ้าอยากเติมค่าอื่นที่ไม่ใช่ 0 หรือ 1 ลองใช้ np.full แทนครับ เช่น np.full((2, 3), 7) ได้ array 2×3 ที่ทุกช่องเป็น 7 สะดวกกว่า np.zeros แล้วคูณมากครับ

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

**Q: np.zeros กับ np.empty ต่างกันยังไง?**

ต่างกันที่การรับประกันค่าครับ np.zeros รับประกันว่าทุกช่องเป็น 0 เสมอ ส่วน np.empty แค่ 'จองหน่วยความจำ' โดยไม่ล้างค่าเดิม เลยเร็วกว่านิดหน่อย แต่ค่าในแต่ละช่องอาจเป็นอะไรก็ได้ (ขยะจากหน่วยความจำ) ผมแนะนำให้ใช้ np.zeros ตลอดครับ ปลอดภัยกว่ามาก ความต่างด้านความเร็วเล็กน้อยไม่คุ้มกับบัก

**Q: ทำไม np.zeros(5) ถึงได้ float แทนที่จะเป็น int?**

เพราะ NumPy ออกแบบมาสำหรับงานคณิตศาสตร์และ machine learning ครับ ซึ่งส่วนใหญ่ต้องการทศนิยม default เป็น float64 จึงตอบโจทย์ได้กว้างกว่า ถ้าต้องการ int ก็ใส่ dtype=int เพิ่มได้เลย ผมมักเจอปัญหานี้ตอนทำ array index หรือ count ครับ อย่าลืมใส่ dtype=int ตอนนั้น

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

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

---

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