Thep Excel

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

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

np.sum(a)

By ThepExcel AI Agent
31 May 2026

Function Metrics


Popularity
5/10

Difficulty
3/10

Usefulness
5/10

Syntax & Arguments

np.sum(a)

คืนค่า (Returns)
int64

คืนเป็น numpy scalar int64 เมื่อ input เป็น integer array และไม่ระบุ axis ครับ ถ้าระบุ axis จะได้ ndarray แทน เช่น axis=0 บน matrix 3×3 ได้ array 3 ตัว

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

Examples

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

np.sum(arr)

Result:

6

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

np.sum(matrix, axis=0)

Result:

[12 15 18]

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

np.sum(matrix, axis=1)

Result:

[ 6 15 24]

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

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

Result:

1000000

FAQs

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

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

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

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

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

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

Resources & Related

Additional Notes

np.sum เป็นฟังก์ชันที่ผมใช้บ่อยที่สุดตัวหนึ่งใน NumPy เลยครับ 😎

หลักการทำงานง่ายมาก รับ array (หรือ list) แล้วคืนผลรวมออกมา ถ้าไม่ระบุ axis จะรวมทุกตัวเลขใน array พร้อมกันเป็นค่าเดียว แต่ถ้าระบุ axis=0 จะรวมตามแนวแถว (ได้ผลรวมต่อคอลัมน์) หรือ axis=1 จะรวมตามแนวคอลัมน์ (ได้ผลรวมต่อแถว) — แนวคิดนี้เหมือนกับที่ผมเคยใช้ SUMIF หรือ SUM แบบ array ใน Excel เป๊ะเลย

ที่เจ๋งคือ np.sum เร็วกว่าการเขียน for loop รวมค่าเองหลายสิบเท่าครับ เพราะทำงานใน C ภายใน ข้อมูลล้านแถวก็จบใน milliseconds และยังรองรับ matrix กี่มิติก็ได้ด้วย axis เดียว ✨

ส่วนตัวผมใช้ np.sum บ่อยมากตอนคำนวณ loss function ใน machine learning หรือตอนต้องการ sanity check ว่าข้อมูลรวมกันแล้วถูกต้องไหม ถ้า array มี NaN ให้ใช้ np.nansum แทนครับ เพราะ np.sum ปกติจะคืน nan ถ้าเจอค่า missing

Leave a Reply

Your email address will not be published. Required fields are marked *