0Pricing
Pandas & NumPy Academy · บทเรียน

ฟังก์ชันการรวมค่า

คำนวณผลรวม ค่าเฉลี่ย ค่าต่ำสุด ค่าสูงสุด และส่วนเบี่ยงเบนมาตรฐานทั่วทั้งอาร์เรย์หรือตามแกนที่ระบุ

ฟังก์ชันการรวมค่า เป็นบทเรียน 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())     # 9

sum() และ 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.0

np.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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. ฟังก์ชันสากล (ufuncs)
  2. ฟังก์ชันการรวมค่า
  3. กฎการกระจายค่า
  4. การทำมาสก์แบบบูลีนและการใช้ดัชนีแบบยืดหยุ่น
← กลับไปที่ Pandas & NumPy Academy