พีชคณิตเชิงเส้นด้วย 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.detnp.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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การสร้างอาร์เรย์และคุณสมบัติ
- การทำดัชนี การหั่นข้อมูล และการทำดัชนีแบบพิเศษ
- การแพร่กระจายรูปร่างและการดำเนินการแบบเวกเตอร์
- พีชคณิตเชิงเส้นด้วย NumPy