0Pricing
Learn AI with Python · บทเรียน

พีชคณิตเชิงเส้นด้วย NumPy

np.dot, np.linalg.inv, np.linalg.eig, np.linalg.solve สำหรับระบบสมการ

พีชคณิตเชิงเส้นด้วย NumPy เป็นบทเรียน Learn AI with Python ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Learn AI with Python และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Learn AI with Python มีบทเรียนทั้งหมด 4 บทเรียน

พีชคณิตเชิงเส้นใน NumPy

NumPy มีการดำเนินการกับเมทริกซ์ผ่านตัวดำเนินการ @ และโมดูล np.linalg ซึ่งเป็นพื้นฐานของอัลกอริทึมการเรียนรู้ของเครื่องแทบทุกชนิด

การคูณเมทริกซ์ด้วย @

ตัวดำเนินการ @ ใช้สำหรับการคูณเมทริกซ์จริง มิติด้านในต้องตรงกัน: (m,k) @ (k,n) ให้ผลลัพธ์เป็น (m,n)

import numpy as np
A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])
print(A @ B)
# [[19 22]
#  [43 50]]

@ กับ * (สำคัญ!)

* ทำงานทีละองค์ประกอบ ส่วน @ ใช้คูณเมทริกซ์ การสับสนระหว่างสองตัวนี้เป็นข้อผิดพลาดที่พบบ่อย

print(A * B)   # element-wise: [[ 5 12]
               #               [21 32]]
print(A @ B)   # matrix product (different result)

np.dot

np.dot คือรูปแบบฟังก์ชัน สำหรับอาร์เรย์ 2 มิติ ผลลัพธ์เท่ากับ @ ส่วนอาร์เรย์ 1 มิติจะคำนวณผลคูณจุด ซึ่งเป็นค่าสเกลาร์

u = np.array([1, 2, 3])
v = np.array([4, 5, 6])
print(np.dot(u, v))   # 1*4 + 2*5 + 3*6 = 32

เมทริกซ์ผกผัน

np.linalg.inv(A) จะคืนค่าเมทริกซ์ผกผัน ซึ่งเป็นเมทริกซ์ที่เมื่อคูณกับ A แล้วให้ผลเป็นเมทริกซ์เอกลักษณ์ จะมีเมทริกซ์ผกผันได้เฉพาะเมทริกซ์จัตุรัสที่ไม่เอกฐานเท่านั้น

A = np.array([[4.0, 7.0], [2.0, 6.0]])
Ainv = np.linalg.inv(A)
print(np.round(A @ Ainv, 6))   # identity

ดีเทอร์มิแนนต์

np.linalg.det(A) จะให้ค่าดีเทอร์มิแนนต์ หากดีเทอร์มิแนนต์มีค่าเป็น 0 แสดงว่าเมทริกซ์เป็นเอกฐานและไม่สามารถหาเมทริกซ์ผกผันได้

print(np.linalg.det(A))   # 10.0  (nonzero -> invertible)

การแก้ระบบสมการเชิงเส้น

หากต้องการแก้ A x = b ให้เลือกใช้ np.linalg.solve(A, b) แทนการคำนวณเมทริกซ์ผกผัน เพราะเร็วกว่าและมีเสถียรภาพเชิงตัวเลขมากกว่า

A = np.array([[3.0, 1.0], [1.0, 2.0]])
b = np.array([9.0, 8.0])
x = np.linalg.solve(A, b)
print(x)   # [2. 3.]

เหตุใดจึงใช้ solve แทน inv

การคำนวณ inv(A) @ b ทำให้เสียการคำนวณโดยไม่จำเป็นและขยายความคลาดเคลื่อนจากการปัดเศษ ส่วน solve ใช้การแยกส่วนแบบ LU โดยตรง ในโค้ดจริงควรเลือกใช้ solve

# Avoid:  x = np.linalg.inv(A) @ b
# Prefer: x = np.linalg.solve(A, b)

ค่าลักษณะเฉพาะและเวกเตอร์ลักษณะเฉพาะ

np.linalg.eig(A) จะคืนค่าลักษณะเฉพาะและเวกเตอร์ลักษณะเฉพาะ สิ่งเหล่านี้เป็นพื้นฐานของ PCA การวิเคราะห์เสถียรภาพ และการประยุกต์ใช้อื่น ๆ อีกมากมาย

A = np.array([[2.0, 0.0], [0.0, 3.0]])
vals, vecs = np.linalg.eig(A)
print(vals)   # [2. 3.]

บรรทัดฐานของเวกเตอร์และเมทริกซ์

np.linalg.norm ใช้วัดขนาด โดยค่าเริ่มต้นจะเป็นบรรทัดฐานแบบยุคลิด (L2) สำหรับเวกเตอร์ ซึ่งใช้ในงานต่าง ๆ ตั้งแต่การวัดระยะทางไปจนถึงการทำให้เป็นปกติ

v = np.array([3.0, 4.0])
print(np.linalg.norm(v))        # 5.0 (sqrt(9+16))
print(np.linalg.norm(v, 1))    # 7.0 (L1 norm)

การทรานสโพส

A.T จะทรานสโพสเมทริกซ์ โดยสลับแถวกับคอลัมน์ การดำเนินการนี้ปรากฏอยู่เสมอในสูตรต่าง ๆ เช่น สมการปกติ

A = np.array([[1, 2, 3], [4, 5, 6]])
print(A.T)
# [[1 4]
#  [2 5]
#  [3 6]]

แบบทดสอบสั้น ๆ

ลองทดสอบความเข้าใจพีชคณิตเชิงเส้นของคุณ

สรุป

เครื่องมือพีชคณิตเชิงเส้น:

  • @ / np.dot สำหรับการคูณเมทริกซ์และผลคูณจุด (ไม่ใช่ *)
  • np.linalg.inv, np.linalg.det
  • np.linalg.solve(A, b) มีประสิทธิภาพดีกว่าการหาเมทริกซ์ผกผัน
  • np.linalg.eig สำหรับการแยกเมทริกซ์เป็นค่าลักษณะเฉพาะ
  • np.linalg.norm สำหรับวัดขนาด และ A.T สำหรับทรานสโพส

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

บทเรียน “พีชคณิตเชิงเส้นด้วย NumPy” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “พีชคณิตเชิงเส้นด้วย NumPy” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Learn AI with Python ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Learn AI with Python มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “พีชคณิตเชิงเส้นด้วย NumPy”

np.dot, np.linalg.inv, np.linalg.eig, np.linalg.solve สำหรับระบบสมการ คุณปฏิบัติ Learn AI with Python ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Learn AI with Python หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Learn AI with Python บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน

บทเรียน “พีชคณิตเชิงเส้นด้วย NumPy” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Learn AI with Python นี้ได้ไหม

ได้ บทเรียน Learn AI with Python ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

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

  1. การสร้างอาร์เรย์และคุณสมบัติ
  2. การทำดัชนี การหั่นข้อมูล และการทำดัชนีแบบพิเศษ
  3. การแพร่กระจายรูปร่างและการดำเนินการแบบเวกเตอร์
  4. พีชคณิตเชิงเส้นด้วย NumPy
← กลับไปที่ Learn AI with Python