Python เมทริกซ์: การย้าย การคูณ ตัวอย่างอาร์เรย์ NumPy
ความหมายของ Python เมทริกซ์?
A Python เมทริกซ์คืออาร์เรย์ข้อมูลสี่เหลี่ยมสองมิติเฉพาะทางที่จัดเก็บเป็นแถวและคอลัมน์ ข้อมูลในเมทริกซ์อาจเป็นตัวเลข สตริง นิพจน์ สัญลักษณ์ ฯลฯ เมทริกซ์เป็นโครงสร้างข้อมูลสำคัญอย่างหนึ่งที่สามารถใช้ในการคำนวณทางคณิตศาสตร์และวิทยาศาสตร์
ทำอย่างไร Python เมทริกซ์ทำงาน?
ข้อมูลภายในอาร์เรย์สองมิติในรูปแบบเมทริกซ์มีลักษณะดังนี้:
ขั้นตอน 1) แสดงเมทริกซ์ 2×2 ประกอบด้วย 2 แถวและ 1 คอลัมน์ ข้อมูลภายในเมทริกซ์คือตัวเลข แถวที่ 2,3 มีค่าเป็น 2 และแถวที่ 4,5 มีค่าเป็น 1 คอลัมน์ เช่น col2,4 มีค่าเป็น 2 และ col3,5 มีค่าเป็น XNUMX
ขั้นตอน 2) มันแสดงเมทริกซ์ขนาด 2×3 มีสองแถวและสามคอลัมน์ ข้อมูลภายในแถวแรก เช่น row1 มีค่า 2,3,4 และ row2 มีค่า 5,6,7 คอลัมน์ col1 มีค่า 2,5, col2 มีค่า 3,6 และ col3 มีค่า 4,7
ในทำนองเดียวกัน คุณสามารถเก็บข้อมูลของคุณไว้ภายในเมทริกซ์ nxn ได้ Pythonการดำเนินการมากมายสามารถทำได้กับเมทริกซ์ เช่น การบวก ลบ คูณ เป็นต้น
Python ไม่มีวิธีที่ตรงไปตรงมาในการใช้ชนิดข้อมูลเมทริกซ์
เมทริกซ์หลามใช้ประโยชน์จากอาร์เรย์และสามารถนำมาใช้ได้เหมือนกัน
- สร้าง Python เมทริกซ์โดยใช้ประเภทข้อมูลรายการที่ซ้อนกัน
- สร้างบัญชีตัวแทน Python เมทริกซ์โดยใช้อาร์เรย์จาก Python แพ็คเกจ Numpy
สร้างบัญชีตัวแทน Python เมทริกซ์ที่ใช้ชนิดข้อมูลรายการที่ซ้อนกัน
In Pythonอาร์เรย์ถูกแสดงโดยใช้ชนิดข้อมูลแบบรายการ ดังนั้นตอนนี้เราจะใช้รายการเพื่อสร้างเมทริกซ์ Python
เราจะสร้างเมทริกซ์ขนาด 3×3 ดังที่แสดงด้านล่าง:
- เมทริกซ์มี 3 แถว 3 คอลัมน์
- แถวแรกในรูปแบบรายการจะเป็นดังนี้: [8,14,-6]
- แถวที่สองในรายการจะเป็น: [12,7,4]
- แถวที่สามในรายการจะเป็น: [-11,3,21]
เมทริกซ์ภายในรายการที่มีแถวและคอลัมน์ทั้งหมดดังที่แสดงด้านล่าง:
List = [[Row1], [Row2], [Row3] ... [RowN]]
ดังนั้นตามเมทริกซ์ที่แสดงด้านบนประเภทรายการที่มีข้อมูลเมทริกซ์จึงเป็นดังนี้:
M1 = [[8, 14, -6], [12,7,4], [-11,3,21]]
เพื่ออ่านข้อมูลภายใน Python เมทริกซ์โดยใช้รายการ
เราจะใช้เมทริกซ์ที่กำหนดไว้ข้างต้น ตัวอย่างจะอ่านข้อมูล พิมพ์เมทริกซ์ แสดงองค์ประกอบสุดท้ายจากแต่ละแถว
ตัวอย่าง: หากต้องการพิมพ์เมทริกซ์
M1 = [[8, 14, -6], [12,7,4], [-11,3,21]] #To print the matrix print(M1)
Output:
The Matrix M1 = [[8, 14, -6], [12, 7, 4], [-11, 3, 21]]
ตัวอย่างที่ 2: หากต้องการอ่านองค์ประกอบสุดท้ายจากแต่ละแถว
M1 = [[8, 14, -6], [12,7,4], [-11,3,21]] matrix_length = len(M1) #To read the last element from each row. for i in range(matrix_length): print(M1[i][-1])
Output:
-6 4 21
ตัวอย่างที่ 3: หากต้องการพิมพ์แถวในเมทริกซ์
M1 = [[8, 14, -6], [12,7,4], [-11,3,21]] matrix_length = len(M1) #To print the rows in the Matrix for i in range(matrix_length): print(M1[i])
Output:
[8, 14, -6] [12, 7, 4] [-11, 3, 21]
การเพิ่มเมทริกซ์โดยใช้รายการที่ซ้อนกัน
เราสามารถบวกเมทริกซ์ที่กำหนดสองตัวได้อย่างง่ายดาย เมทริกซ์ตรงนี้จะอยู่ในรูปแบบรายการ ให้เราทำงานกับตัวอย่างที่จะดูแลเพื่อเพิ่มเมทริกซ์ที่กำหนด
เมทริกซ์ 1:
M1 = [[8, 14, -6], [12,7,4], [-11,3,21]]
เมทริกซ์ 2 :
M2 = [[3, 16, -6], [9,7,-4], [-1,3,13]]
สุดท้ายจะเริ่มต้นเมทริกซ์ที่จะเก็บผลลัพธ์ของ M1 + M2
เมทริกซ์ 3 :
M3 = [[0,0,0], [0,0,0], [0,0,0]]
ตัวอย่าง: การบวกเมทริกซ์
นอกจากนี้ เมทริกซ์จะใช้ for-loop ที่จะวนซ้ำผ่านเมทริกซ์ทั้งสองที่กำหนด
M1 = [[8, 14, -6], [12,7,4], [-11,3,21]] M2 = [[3, 16, -6], [9,7,-4], [-1,3,13]] M3 = [[0,0,0], [0,0,0], [0,0,0]] matrix_length = len(M1) #To Add M1 and M2 matrices for i in range(len(M1)): for k in range(len(M2)): M3[i][k] = M1[i][k] + M2[i][k] #To Print the matrix print("The sum of Matrix M1 and M2 = ", M3)
Output:
The sum of Matrix M1 and M2 = [[11, 30, -12], [21, 14, 0], [-12, 6, 34]]
การคูณเมทริกซ์โดยใช้รายการที่ซ้อนกัน
ในการคูณเมทริกซ์ เราสามารถใช้ for-loop บนเมทริกซ์ทั้งสองได้ดังแสดงในโค้ดด้านล่าง:
M1 = [[8, 14, -6], [12,7,4], [-11,3,21]] M2 = [[3, 16, -6], [9,7,-4], [-1,3,13]] M3 = [[0,0,0], [0,0,0], [0,0,0]] matrix_length = len(M1) #To Multiply M1 and M2 matrices for i in range(len(M1)): for k in range(len(M2)): M3[i][k] = M1[i][k] * M2[i][k] #To Print the matrix print("The multiplication of Matrix M1 and M2 = ", M3)
Output:
The multiplication of Matrix M1 and M2 = [[24, 224, 36], [108, 49, -16], [11, 9, 273]]
สร้างบัญชีตัวแทน Python เมทริกซ์โดยใช้อาร์เรย์จาก Python แพ็คเกจ Numpy
ไลบรารีหลาม Numpy ช่วยจัดการกับอาร์เรย์ Numpy ประมวลผลอาร์เรย์เร็วขึ้นเล็กน้อยเมื่อเปรียบเทียบกับรายการ
หากต้องการทำงานกับ Numpy คุณต้องติดตั้งก่อน ทำตามขั้นตอนด้านล่างเพื่อติดตั้ง Numpy
ขั้นตอน 1) คำสั่งในการติดตั้ง Numpy คือ:
pip install NumPy
ขั้นตอน 2) หากต้องการใช้ Numpy ในโค้ดของคุณ คุณต้องนำเข้ามัน
import NumPy
ขั้นตอน 3) คุณยังสามารถนำเข้า Numpy โดยใช้นามแฝงได้ดังที่แสดงด้านล่าง:
import NumPy as np
เราจะใช้เมธอด array() จาก Numpy เพื่อสร้างเมทริกซ์หลาม
ตัวอย่าง : Array ใน Numpy ที่จะสร้าง Python มดลูก
import numpy as np M1 = np.array([[5, -10, 15], [3, -6, 9], [-4, 8, 12]]) print(M1)
Output:
[[ 5 -10 15] [ 3 -6 9] [ -4 8 12]]
มดลูก Operaโดยใช้ Numpy.Array()
การดำเนินการเมทริกซ์ที่สามารถทำได้คือการบวก ลบ คูณ สลับตำแหน่ง การอ่านแถว คอลัมน์ของเมทริกซ์ การแบ่งเมทริกซ์ ฯลฯ ในตัวอย่างทั้งหมด เราจะใช้เมธอด array()
การบวกเมทริกซ์
ในการดำเนินการบวกเมทริกซ์ เราจะสร้างเมทริกซ์สองเมทริกซ์โดยใช้ numpy.array() และทำการบวกเมทริกซ์เหล่านี้โดยใช้ตัวดำเนินการ (+)
ตัวอย่าง:
import numpy as np M1 = np.array([[3, 6, 9], [5, -10, 15], [-7, 14, 21]]) M2 = np.array([[9, -18, 27], [11, 22, 33], [13, -26, 39]]) M3 = M1 + M2 print(M3)
Output:
[[ 12 -12 36] [ 16 12 48] [ 6 -12 60]]
การลบเมทริกซ์
ในการลบเมทริกซ์ เราจะสร้างเมทริกซ์สองเมทริกซ์โดยใช้ numpy.array() และลบโดยใช้ตัวดำเนินการ (-)
ตัวอย่าง:
import numpy as np M1 = np.array([[3, 6, 9], [5, -10, 15], [-7, 14, 21]]) M2 = np.array([[9, -18, 27], [11, 22, 33], [13, -26, 39]]) M3 = M1 - M2 print(M3)
Output:
[[ -6 24 -18] [ -6 -32 -18] [-20 40 -18]]
การคูณเมทริกซ์
ขั้นแรกจะสร้างเมทริกซ์สองตัวโดยใช้ numpy.arary() หากต้องการคูณความตั้งใจ คุณสามารถใช้วิธี numpy dot() ได้ Numpy.dot() คือดอทโปรดัคของเมทริกซ์ M1 และ M2 Numpy.dot() จัดการอาร์เรย์ 2 มิติและทำการคูณเมทริกซ์
ตัวอย่าง:
import numpy as np M1 = np.array([[3, 6], [5, -10]]) M2 = np.array([[9, -18], [11, 22]]) M3 = M1.dot(M2) print(M3)
Output:
[[ 93 78] [ -65 -310]]
เมทริกซ์ทรานสโพส
การคำนวณการย้ายเมทริกซ์โดยการเปลี่ยนแถวเป็นคอลัมน์และคอลัมน์เป็นแถว ฟังก์ชัน transpose() จาก Numpy สามารถใช้คำนวณการย้ายเมทริกซ์ได้
ตัวอย่าง:
import numpy as np M1 = np.array([[3, 6, 9], [5, -10, 15], [4,8,12]]) M2 = M1.transpose() print(M2)
Output:
[[ 3 5 4] [ 6 -10 8] [ 9 15 12]]
การแบ่งส่วนของเมทริกซ์
การแบ่งส่วนจะส่งคืนองค์ประกอบจากเมทริกซ์ตามดัชนีเริ่มต้น/สิ้นสุดที่กำหนด
- ไวยากรณ์สำหรับการแบ่งส่วนคือ – [start:end]
- หากไม่ได้ระบุดัชนีเริ่มต้น จะถือเป็น 0 ตัวอย่างเช่น [:5] จะหมายถึง [0:5]
- หากไม่ผ่านจุดสิ้นสุด จะใช้ความยาวของอาร์เรย์
- หากจุดเริ่มต้น/จุดสิ้นสุดมีค่าเป็นลบ การตัดจะเสร็จสิ้นจากจุดสิ้นสุดของอาร์เรย์
ก่อนที่เราจะทำการสไลซ์บนเมทริกซ์ ให้เราเข้าใจวิธีการใช้สไลซ์บนอาร์เรย์แบบง่ายก่อน
import numpy as np arr = np.array([2,4,6,8,10,12,14,16]) print(arr[3:6]) # will print the elements from 3 to 5 print(arr[:5]) # will print the elements from 0 to 4 print(arr[2:]) # will print the elements from 2 to length of the array. print(arr[-5:-1]) # will print from the end i.e. -5 to -2 print(arr[:-1]) # will print from end i.e. 0 to -2
Output:
[ 8 10 12] [ 2 4 6 8 10] [ 6 8 10 12 14 16] [ 8 10 12 14] [ 2 4 6 8 10 12 14]
ตอนนี้ให้เราใช้การแบ่งส่วนบนเมทริกซ์ เพื่อดำเนินการตัดบนเมทริกซ์
ไวยากรณ์จะเป็น M1[row_start:row_end, col_start:col_end]
- จุดเริ่มต้น/จุดสิ้นสุดแรกจะเป็นสำหรับแถว กล่าวคือ เพื่อเลือกแถวของเมทริกซ์
- จุดเริ่มต้น/จุดสิ้นสุดที่สองจะเป็นสำหรับคอลัมน์ กล่าวคือ เพื่อเลือกคอลัมน์ของเมทริกซ์
เมทริกซ์ M1 tที่เราจะใช้มีดังนี้:
M1 = np.array([[2, 4, 6, 8, 10], [3, 6, 9, -12, -15], [4, 8, 12, 16, -20], [5, -10, 15, -20, 25]])
มีทั้งหมด 4 แถว ดัชนีเริ่มต้นจาก 0 ถึง 3 0th แถวคือ [2,4,6,8,10], 1st แถวคือ [3,6,9,-12,-15] ตามด้วย 2nd และ 3rd.
เมทริกซ์ M1 มี 5 คอลัมน์ ดัชนีเริ่มต้นจาก 0 ถึง 4 0th คอลัมน์มีค่า [2,3,4,5], 1st คอลัมน์มีค่า [4,6,8,-10] ตามด้วย 2nd, 3rd, 4thและ 5th.
นี่คือตัวอย่างที่แสดงวิธีการรับข้อมูลแถวและคอลัมน์จากเมทริกซ์โดยใช้การแบ่งส่วน ในตัวอย่างนี้ เราจะพิมพ์ 1st และ 2nd แถว และสำหรับคอลัมน์ เราต้องการคอลัมน์แรก ที่สอง และสาม เพื่อให้ได้ผลลัพธ์นั้น เราใช้: M1[1:3, 1:4]
ตัวอย่าง:
import numpy as np M1 = np.array([[2, 4, 6, 8, 10], [3, 6, 9, -12, -15], [4, 8, 12, 16, -20], [5, -10, 15, -20, 25]]) print(M1[1:3, 1:4]) # For 1:3, it will give first and second row. #The columns will be taken from first to third.
Output:
[[ 6 9 -12] [ 8 12 16]]
ตัวอย่าง : พิมพ์ทุกแถวและคอลัมน์ที่สาม
import numpy as np M1 = np.array([[2, 4, 6, 8, 10], [3, 6, 9, -12, -15], [4, 8, 12, 16, -20], [5, -10, 15, -20, 25]]) print(M1[:,3]) # This will print all rows and the third column data.
Output:
[ 8 -12 16 -20]
ตัวอย่าง: หากต้องการพิมพ์แถวแรกและคอลัมน์ทั้งหมด
import numpy as np M1 = np.array([[2, 4, 6, 8, 10], [3, 6, 9, -12, -15], [4, 8, 12, 16, -20], [5, -10, 15, -20, 25]]) print(M1[:1,]) # This will print first row and all columns
Output:
[[ 2 4 6 8 10]]
ตัวอย่าง: หากต้องการพิมพ์สามแถวแรกและ 2 คอลัมน์แรก
import numpy as np M1 = np.array([[2, 4, 6, 8, 10], [3, 6, 9, -12, -15], [4, 8, 12, 16, -20], [5, -10, 15, -20, 25]]) print(M1[:3,:2])
Output:
[[2 4] [3 6] [4 8]]
การเข้าถึงเมทริกซ์ NumPy
เราได้เห็นแล้วว่าการแบ่งส่วนทำงานอย่างไร เมื่อคำนึงถึงสิ่งนั้นแล้ว เราจะมาดูวิธีดึงแถวและคอลัมน์จากเมทริกซ์กัน
เพื่อพิมพ์แถวของเมทริกซ์
ในตัวอย่างจะพิมพ์แถวของเมทริกซ์
ตัวอย่าง:
import numpy as np M1 = np.array([[3, 6, 9], [5, -10, 15], [4,8,12]]) print(M1[0]) #first row print(M1[1]) # the second row print(M1[-1]) # -1 will print the last row
Output:
[3 6 9] [ 5 -10 15] [ 4 8 12]
หากต้องการดูแถวสุดท้าย คุณสามารถใช้ดัชนีหรือ -1 ได้ เช่น เมทริกซ์มี 3 แถว
ดังนั้น M1[0] จะให้แถวแรกแก่คุณ
M1[1] จะให้แถวที่สองแก่คุณ
M1[2] หรือ M1[-1] จะให้แถวที่สามหรือแถวสุดท้ายแก่คุณ
เพื่อพิมพ์คอลัมน์ของเมทริกซ์
import numpy as np M1 = np.array([[2, 4, 6, 8, 10], [3, 6, 9, -12, -15], [4, 8, 12, 16, -20], [5, -10, 15, -20, 25]]) print(M1[:,0]) # Will print the first Column print(M1[:,3]) # Will print the third Column print(M1[:,-1]) # -1 will give you the last column
Output:
[2 3 4 5] [ 8 -12 16 -20] [ 10 -15 -20 25]
สรุป
- A Python เมทริกซ์คืออาร์เรย์ข้อมูลสี่เหลี่ยมสองมิติเฉพาะทางที่จัดเก็บเป็นแถวและคอลัมน์ ข้อมูลในเมทริกซ์อาจเป็นตัวเลข สตริง นิพจน์ สัญลักษณ์ ฯลฯ เมทริกซ์เป็นโครงสร้างข้อมูลสำคัญอย่างหนึ่งที่สามารถใช้ในการคำนวณทางคณิตศาสตร์และวิทยาศาสตร์
- Python ไม่มีวิธีที่ตรงไปตรงมาในการใช้ชนิดข้อมูลเมทริกซ์ Python เมทริกซ์สามารถสร้างขึ้นได้โดยใช้ชนิดข้อมูลรายการที่ซ้อนกันและโดยใช้ไลบรารี numpy
- ไลบรารีหลาม Numpy ช่วยจัดการกับอาร์เรย์ Numpy ประมวลผลอาร์เรย์เร็วขึ้นเล็กน้อยเมื่อเปรียบเทียบกับรายการ
- การดำเนินการเมทริกซ์ที่สามารถทำได้ คือ การบวก ลบ คูณ ย้ายตำแหน่ง การอ่านแถว คอลัมน์ของเมทริกซ์ การแบ่งเมทริกซ์ ฯลฯ
- หากต้องการเพิ่มเมทริกซ์สองตัว คุณสามารถใช้ numpy.array() และเพิ่มเมทริกซ์เหล่านั้นได้โดยใช้ตัวดำเนินการ (+)
- หากต้องการคูณพินัยกรรม คุณสามารถใช้เมธอด numpy dot() ได้ Numpy.dot() คือดอทโปรดัคของเมทริกซ์ M1 และ M2 Numpy.dot() จัดการอาร์เรย์ 2 มิติและทำการคูณเมทริกซ์
- การสลับเมทริกซ์คำนวณโดยการเปลี่ยนแถวเป็นคอลัมน์และคอลัมน์เป็นแถว ฟังก์ชัน transpose() จาก Numpy สามารถใช้คำนวณการย้ายเมทริกซ์ได้
- การแบ่งส่วนของเมทริกซ์จะส่งคืนองค์ประกอบให้คุณตามดัชนีเริ่มต้น/สิ้นสุดที่กำหนด