---
title: numpy sum — รวมค่าทั้งหมดใน array
url: https://www.thepexcel.com/functions/python/aggregation/numpy-sum/
type: function-explainer
program: Python
syntax: np.sum(a)
date: 2026-05-31
scores:
  popularity: 5
  difficulty: 3
  usefulness: 5
---

# numpy sum — รวมค่าทั้งหมดใน array

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

## คำอธิบาย

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

## Syntax

```excel
np.sum(a)
```

## Arguments

| Name | Required | Type | Default | Description |
| --- | --- | --- | --- | --- |
| a | Yes | array_like |  | array หรือ list ที่ต้องการรวม เช่น [1, 2, 3] หรือ np.array([[1,2],[3,4]]) |
| axis | No | int \| None | None | แกนที่จะรวม None=รวมทุกตัวเป็นค่าเดียว, axis=0=รวมตามแถว (ได้ต่อคอลัมน์), axis=1=รวมตามคอลัมน์ (ได้ต่อแถว) |
| dtype | No | dtype | None | ชนิดข้อมูลที่ใช้สะสมผลรวม เช่น np.float64 หรือ np.int64 ถ้าไม่ใส่จะเดาจาก input อัตโนมัติ |
| keepdims | No | bool | False | ถ้า True จะรักษา dimension เดิมไว้ในผลลัพธ์ ใช้ตอนต้องการ broadcast กลับไปยัง array ต้นฉบับ |

## ตัวอย่าง

### 1. ตัวอย่างที่ 1: รวมค่าทั้งหมดใน array 1 มิติ

```excel
np.sum(arr)
```

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

ผมส่ง array 3 ตัวเข้าไป ได้ผลรวม 6 ออกมาครับ (1+2+3) ไม่ต้องวน loop หรือเขียน sum(list) เองเลย เขียนบรรทัดเดียวจบ และได้ผลลัพธ์เป็น numpy scalar int64 ด้วย

### 2. ตัวอย่างที่ 2: รวมผลรวมต่อคอลัมน์ใน matrix ด้วย axis=0

```excel
np.sum(matrix, axis=0)
```

**ผลลัพธ์:** `[12 15 18]`

ผมใส่ axis=0 เพื่อรวมตามแนวแถวครับ ได้ผลรวมต่อคอลัมน์ออกมาเป็น ndarray คอลัมน์แรก (1+4+7)=12, คอลัมน์สอง (2+5+8)=15, คอลัมน์สาม (3+6+9)=18 คิดแบบ Excel ก็คือเหมือนใส่ SUM ไว้ที่ Row สุดท้ายของแต่ละคอลัมน์นั่นเองครับ

### 3. ตัวอย่างที่ 3: รวมผลรวมต่อแถวใน matrix ด้วย axis=1

```excel
np.sum(matrix, axis=1)
```

**ผลลัพธ์:** `[ 6 15 24]`

เปลี่ยนเป็น axis=1 คราวนี้ได้ผลรวมต่อแถวครับ แถวแรก (1+2+3)=6, แถวสอง (4+5+6)=15, แถวสาม (7+8+9)=24 ผลลัพธ์ออกมาเป็น ndarray เหมือนกัน ผมใช้แบบนี้ตอนต้องการ row total เหมือนคอลัมน์ Total ทางขวาสุดของตาราง Excel ครับ

### 4. ตัวอย่างที่ 4: รวมค่าและกำหนด dtype เพื่อป้องกัน overflow

```excel
np.sum(arr, dtype=np.int64)
```

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

กรณีข้อมูลเป็น int32 และค่ารวมอาจเกิน 2 พันล้าน ผมจะระบุ dtype=np.int64 เพื่อให้สะสมผลรวมในพื้นที่ที่ใหญ่กว่าครับ ป้องกัน integer overflow ที่ทำให้ได้ค่าผิดพลาดอย่างเงียบๆ โดยไม่มี error แจ้ง ผมโดนแบบนี้มาครั้งหนึ่งแล้วครับ เสียเวลา debug นานมาก 😅

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

- ผมแนะนำให้ใช้ np.nansum แทน np.sum เสมอเมื่อข้อมูลอาจมีค่า missing ครับ เพราะ np.sum จะคืน nan ทันทีที่เจอ NaN แม้ตัวเดียว ทำให้ผลรวมทั้งหมดพังไปด้วย ส่วน nansum ข้ามค่านั้นไปเลย

- ส่วนตัวผมใช้ keepdims=True บ่อยมากตอนต้องการ normalize หรือ broadcast กลับ เช่น arr / np.sum(arr, axis=1, keepdims=True) เพื่อแปลงแต่ละแถวให้รวมกันเป็น 1.0 (softmax style) โดยไม่ต้องเรียก .reshape() เพิ่มครับ

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

**Q: np.sum กับ Python built-in sum() ต่างกันยังไง?**

ต่างกันสามเรื่องครับ อย่างแรก np.sum เร็วกว่ามากบนข้อมูลขนาดใหญ่เพราะทำงานใน C ไม่ใช่ Python loop อย่างที่สอง np.sum รองรับ axis และ matrix หลายมิติได้ซึ่ง sum() ทำไม่ได้ อย่างที่สาม sum() จะรวม list ทั่วไปแต่ไม่รองรับ array หลายมิติ ผมใช้ sum() เฉพาะตอน list เล็กๆ ที่ไม่ได้ import numpy ครับ

**Q: ถ้า array มี NaN ผลลัพธ์จะเป็นยังไง?**

np.sum จะคืน nan ทันทีถ้าเจอ NaN แม้แต่ตัวเดียวครับ เพราะ NaN มันแพร่กระจาย (propagates) ตามนิยามทางคณิตศาสตร์ ถ้าข้อมูลอาจมี missing ผมจะเปลี่ยนไปใช้ np.nansum แทนครับ มันข้าม NaN ไปแล้วรวมค่าที่เหลือให้เลย ปลอดภัยกว่าเยอะ

**Q: axis=0 กับ axis=1 จำยากมาก มีวิธีจำง่ายๆ ไหม?**

ผมจำแบบนี้ครับ axis=0 = รวมตาม 'แถวที่ 0' คือรวมในแนวดิ่ง (ลงตามแถว) ได้ค่าต่อคอลัมน์ ส่วน axis=1 = รวมตาม 'คอลัมน์ที่ 1' คือรวมในแนวนอน (ข้ามคอลัมน์) ได้ค่าต่อแถว หรือถ้าจำยาก ผมแนะนำให้ลองรันดูเลยครับ 2 นาทีก็รู้แล้วว่าได้ shape อะไร

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

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

---

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