ฟังก์ชันการรวมค่า
คำนวณผลรวม ค่าเฉลี่ย ค่าต่ำสุด ค่าสูงสุด และส่วนเบี่ยงเบนมาตรฐานทั่วทั้งอาร์เรย์หรือตามแกนที่ระบุ
ฟังก์ชันการรวมค่า เป็นบทเรียน Pandas & NumPy Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Pandas & NumPy Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Pandas & NumPy Academy มีบทเรียนทั้งหมด 4 บทเรียน
การรวมค่า (Aggregation) คืออะไร
การรวมค่า คือการย่ออาร์เรย์ให้เหลือค่าที่ใช้สรุปเพียงไม่กี่ค่า เช่น ผลรวม หรือค่าเฉลี่ย ฟังก์ชันในตัวของ NumPy ทำงานนี้ด้วยภาษา C ที่รวดเร็ว โดยไม่ต้องใช้ลูป
import numpy as np
a = np.array([3, 7, 2, 9, 1, 6])
print('sum:', a.sum()) # 28
print('mean:', a.mean()) # 4.666...
print('max:', a.max()) # 9sum() และ cumsum()
ใช้ a.sum() เพื่อหาผลรวมของสมาชิกทุกตัว และใช้ np.cumsum เพื่อหาผลรวมสะสม โดยแต่ละตำแหน่งจะเก็บผลรวมของค่าทั้งหมดตั้งแต่ต้นจนถึงตำแหน่งนั้น
import numpy as np
a = np.array([1, 2, 3, 4, 5])
print(a.sum()) # 15
print(np.cumsum(a)) # [ 1 3 6 10 15]mean() และ std()
a.mean() ให้ค่าเฉลี่ย และ a.std() ให้ค่า ส่วนเบี่ยงเบนมาตรฐาน โดยค่าเริ่มต้น std จะหารด้วย N หากข้อมูลของคุณเป็นกลุ่มตัวอย่าง ให้ส่งค่า ddof=1
import numpy as np
a = np.array([2.0, 4.0, 4.0, 4.0, 5.0, 5.0, 7.0, 9.0])
print('mean:', a.mean()) # 5.0
print('std (pop):', a.std()) # 2.0
print('std (sample):', a.std(ddof=1)) # 2.138...min() และ max() กับ argmin/argmax
a.min() และ a.max() ให้ค่าที่น้อยที่สุดและมากที่สุด หากต้องการตำแหน่งของค่าเหล่านั้นแทน ให้ใช้ argmin และ argmax ซึ่งจะคืนค่า index ของแต่ละค่า
import numpy as np
a = np.array([3, 7, 2, 9, 1, 6])
print('min:', a.min(), 'at index', a.argmin()) # 1 at 4
print('max:', a.max(), 'at index', a.argmax()) # 9 at 3การรวมค่าตามแกน
อาร์กิวเมนต์ axis ใช้เลือกมิติที่จะยุบรวม: axis=0 ให้หนึ่งค่าต่อคอลัมน์ และ axis=1 ให้หนึ่งค่าต่อแถว หากไม่ระบุ ระบบจะลดรูปทั้งอาร์เรย์
import numpy as np
m = np.array([[1, 2, 3],
[4, 5, 6]])
print(m.sum(axis=0)) # [5 7 9] -- column sums
print(m.sum(axis=1)) # [ 6 15] -- row sums
print(m.mean(axis=0)) # [2.5 3.5 4.5]keepdims=True เพื่อคงรูปทรง
การรวมค่าตามแกนจะลบมิตินั้นออก เพิ่ม keepdims=True เพื่อคงมิตินั้นไว้โดยมีขนาดเป็น 1 ซึ่งจำเป็นเมื่อคุณต้องการให้ผลลัพธ์นำไป broadcast กลับมาได้ภายหลัง
import numpy as np
m = np.array([[1, 2, 3],
[4, 5, 6]])
row_sums = m.sum(axis=1, keepdims=True)
print(row_sums.shape) # (2, 1)
normed = m / row_sums
print(normed.round(3))
# [[0.167 0.333 0.5 ]
# [0.267 0.333 0.4 ]]การรวมค่าที่ปลอดภัยต่อ NaN
เพียงมี NaN หนึ่งค่า ผลรวมปกติหรือค่าเฉลี่ยก็จะคืนค่าเป็น NaN เวอร์ชันที่ ปลอดภัยต่อ NaN เช่น np.nansum และ np.nanmean จะข้ามค่าที่หายไปโดยอัตโนมัติ
import numpy as np
a = np.array([1.0, np.nan, 3.0, np.nan, 5.0])
print(a.sum()) # nan
print(np.nansum(a)) # 9.0
print(np.nanmean(a)) # 3.0
print(np.nanmax(a)) # 5.0np.median และ np.percentile
np.median ให้ค่าตรงกลาง และได้รับผลกระทบจากค่าผิดปกติน้อยกว่าค่าเฉลี่ยมาก np.percentile ใช้หาค่าที่ข้อมูลตามเปอร์เซ็นต์ที่กำหนดมีค่าน้อยกว่าค่านั้น
import numpy as np
a = np.array([1, 2, 3, 4, 100]) # outlier at 100
print('mean:', a.mean()) # 22.0 -- skewed
print('median:', np.median(a)) # 3.0 -- robust
print(np.percentile(a, [25, 50, 75])) # [ 2. 3. 4.]np.any() และ np.all()
np.any จะคืนค่า True หากมีสมาชิกอย่างน้อยหนึ่งตัวผ่านเงื่อนไข ส่วน np.all จะคืนค่า True ก็ต่อเมื่อสมาชิกทุกตัวผ่านเงื่อนไข ทั้งสองฟังก์ชันสามารถตรวจสอบแยกตามแถวหรือคอลัมน์ได้
import numpy as np
a = np.array([1, -2, 3, -4])
print(np.any(a < 0)) # True (some are negative)
print(np.all(a > 0)) # False (not all are positive)
# Row-wise check on 2D
m = np.array([[1, 2], [-1, 3]])
print(np.all(m > 0, axis=1)) # [ True False]np.count_nonzero()
np.count_nonzero ใช้นับจำนวนสมาชิกที่ไม่ใช่ศูนย์ หรือจำนวนสมาชิกที่เป็น True คุณสามารถส่งเงื่อนไข เช่น a > 5 เพื่อจับคู่และนับจำนวนได้อย่างสะดวก
import numpy as np
a = np.array([3, 0, 7, 0, 2, 0])
print(np.count_nonzero(a)) # 3
print(np.count_nonzero(a > 2)) # 2 (elements 3 and 7)
m = np.array([[0, 1], [1, 1]])
print(np.count_nonzero(m, axis=0)) # [1 2]np.unique() สำหรับค่าที่ไม่ซ้ำกัน
np.unique จะคืนค่าที่ไม่ซ้ำกันโดยเรียงลำดับแล้ว เพิ่ม return_counts=True เพื่อรับจำนวนครั้งที่แต่ละค่าปรากฏด้วย ซึ่งจะได้ตารางความถี่ทันที
import numpy as np
a = np.array([3, 1, 4, 1, 5, 9, 2, 6, 5, 3])
uniq, counts = np.unique(a, return_counts=True)
print(uniq) # [1 2 3 4 5 6 9]
print(counts) # [2 1 2 1 2 1 1]ตรวจสอบความเข้าใจ
ทดสอบความเข้าใจเกี่ยวกับฟังก์ชันการรวมค่าของ NumPy จากบทเรียนนี้
สรุปบทเรียน
ทำได้ดีมาก! การรวมค่าของ NumPy ช่วยสรุปอาร์เรย์ด้วยภาษา C ที่รวดเร็ว อาร์กิวเมนต์ axis ใช้เลือกสิ่งที่จะยุบรวม และเวอร์ชันที่ปลอดภัยต่อ NaN จะข้ามค่าที่หายไป บทถัดไป: broadcasting
คำถามที่พบบ่อย
บทเรียน “ฟังก์ชันการรวมค่า” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “ฟังก์ชันการรวมค่า” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Pandas & NumPy Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Pandas & NumPy Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “ฟังก์ชันการรวมค่า”
คำนวณผลรวม ค่าเฉลี่ย ค่าต่ำสุด ค่าสูงสุด และส่วนเบี่ยงเบนมาตรฐานทั่วทั้งอาร์เรย์หรือตามแกนที่ระบุ คุณปฏิบัติ Pandas & NumPy Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Pandas & NumPy Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Pandas & NumPy Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน
บทเรียน “ฟังก์ชันการรวมค่า” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Pandas & NumPy Academy นี้ได้ไหม
ได้ บทเรียน Pandas & NumPy Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ