N-dimensional Array using NumPy (II)
@, .T, np.linalg)Note
ต่อจาก Module 12a — การสร้าง array & การคำนวณ · Live Code ใช้ NumPy จริงใน browser (Pyodide) — กด Run
index · slice · การเลือกด้วยเงื่อนไข
เข้าถึงข้อมูลด้วย array[index] และ slice ด้วย array[start:stop:step] (เหมือน List)
Note
array หลายมิติระบุ index แต่ละมิติได้ — x[1,2] หรือ x[1][2]
x[::2, 2:]2 ขั้นตอน: (1) สร้าง selector array ด้วย comparison operator (ได้ array ของ True/False) — (2) นำไปใช้เป็น index
Note
ใช้รูปแบบ array[selector_array] เลือกเฉพาะ item ที่ตรงเงื่อนไข (ผลลัพธ์เป็น 1D array)
โจทย์: row ใดที่ column แรก == 1 ให้หาผลรวมของ column ที่ 2 และ 4
การ slice สร้าง View — แก้ View กระทบต้นฉบับ
การเลือกข้อมูลด้วย index / slice คือการสร้าง View — แก้ค่า View แล้ว array ต้นทางเปลี่ยนตาม
ใช้ .copy() สร้างสำเนาที่แยกออกจากต้นทางเด็ดขาด
Matrix multiplication · Transpose · Linear Algebra
ใช้ @ operator หรือ .dot() สำหรับการคูณแบบเมตริกซ์ (Python 3.5+) — shape ต้องสอดคล้องกัน
ทำ Transpose ด้วย property .T
โมดูลย่อย np.linalg สำหรับพีชคณิตเชิงเส้น เช่น np.linalg.det(), np.linalg.inv(), np.linalg.solve()
แปลงระบบสมการเป็นรูปเมตริกซ์ \(Ax = b\) แล้วแก้ด้วย np.linalg.solve()
เข้าถึงข้อมูล
array[index] · array[start:stop:step]x[i, j] · slice: x[::2, 2:]x[x>10].copy())Matrix
@ / .dot() — matrix multiplication.T — transpose (ผลเป็น View)np.linalg — det() inv() solve()Tip
NumPy = เร็ว + โค้ดสั้น + ใกล้เคียงคณิตศาสตร์
🏠 259201 — Module 12b | ภาควิชาวิศวกรรมคอมพิวเตอร์ คณะวิศวกรรมศาสตร์ มหาวิทยาลัยเชียงใหม่