Thep Excel

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

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

>_
np.sum(a)

ความนิยม5/10
ความยาก3/10
ประโยชน์5/10

อัปเดต 31 May 2026

Syntax & Arguments

คืนค่าint64

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

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

[ ] = อาร์กิวเมนต์ที่ไม่บังคับ

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

Examples

ตัวอย่างที่ 1: รวมค่าทั้งหมดใน array 1 มิติnp.sum(arr)

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

>_
np.sum(arr)

ผลลัพธ์6
ตัวอย่างที่ 2: รวมผลรวมต่อคอลัมน์ใน matrix ด้วย axis=0np.sum(matrix, axis=0)

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

>_
np.sum(matrix, axis=0)

ผลลัพธ์[12 15 18]
ตัวอย่างที่ 3: รวมผลรวมต่อแถวใน matrix ด้วย axis=1np.sum(matrix, axis=1)

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

>_
np.sum(matrix, axis=1)

ผลลัพธ์[ 6 15 24]
ตัวอย่างที่ 4: รวมค่าและกำหนด dtype เพื่อป้องกัน overflownp.sum(arr, dtype=np.int64)

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

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

ผลลัพธ์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

ฟังก์ชันที่ผู้เขียนโยงไว้กับ numpy sum จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง

ฟังก์ชันนี้numpy sumAggregation
Aggregation (2)
numpy max

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

numpy mean

np.mean ใน NumPy ผมใช้สำหรับคำนวณค่าเฉลี่ยเลขคณิตของ array หรือของแต่ละแถว/คอลัมน์ใน matrix ได้ในคำสั่งเดียว เร็วกว่าเขียน sum/len เองหลายเท่า และยังรองรับข้อมูลหลายมิติได้ด้วยครับ

Creation (1)
numpy arange

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

Comments

อีเมลของคุณจะไม่ถูกเผยแพร่