Python - เมทริกซ์

เมทริกซ์เป็นกรณีพิเศษของอาร์เรย์สองมิติที่แต่ละองค์ประกอบข้อมูลมีขนาดเท่ากัน ดังนั้นทุกเมทริกซ์จึงเป็นอาร์เรย์สองมิติ แต่ไม่ใช่ในทางกลับกัน เมทริกซ์เป็นโครงสร้างข้อมูลที่สำคัญมากสำหรับการคำนวณทางคณิตศาสตร์และวิทยาศาสตร์จำนวนมาก ดังที่เราได้กล่าวไปแล้วสองโครงสร้างข้อมูลอาร์เรย์ dimnsional ในบทที่แล้วเราจะมุ่งเน้นไปที่การดำเนินการโครงสร้างข้อมูลเฉพาะสำหรับเมทริกซ์ในบทนี้

นอกจากนี้เรายังใช้แพ็คเกจ numpy สำหรับการจัดการข้อมูลเมทริกซ์

ตัวอย่างเมทริกซ์

พิจารณากรณีของการบันทึกอุณหภูมิเป็นเวลา 1 สัปดาห์โดยวัดในตอนเช้าตอนกลางวันตอนเย็นและตอนกลางดึก สามารถนำเสนอเป็นเมทริกซ์ 7X5 โดยใช้อาร์เรย์และวิธีการปรับรูปร่างใหม่ที่มีอยู่ใน numpy

from numpy import * 
a = array([['Mon',18,20,22,17],['Tue',11,18,21,18],
		   ['Wed',15,21,20,19],['Thu',11,20,22,21],
		   ['Fri',18,17,23,22],['Sat',12,22,20,18],
		   ['Sun',13,15,19,16]])
    
m = reshape(a,(7,5))
print(m)

ข้อมูลข้างต้นสามารถแสดงเป็นอาร์เรย์สองมิติได้ดังต่อไปนี้

[['Mon' '18' '20' '22' '17']
 ['Tue' '11' '18' '21' '18']
 ['Wed' '15' '21' '20' '19']
 ['Thu' '11' '20' '22' '21']
 ['Fri' '18' '17' '23' '22']
 ['Sat' '12' '22' '20' '18']
 ['Sun' '13' '15' '19' '16']]

การเข้าถึงค่าในเมทริกซ์

องค์ประกอบข้อมูลในเมทริกซ์สามารถเข้าถึงได้โดยใช้ดัชนี วิธีการเข้าถึงจะเหมือนกับวิธีการเข้าถึงข้อมูลในอาร์เรย์สองมิติ

from numpy import * 
m = array([['Mon',18,20,22,17],['Tue',11,18,21,18],
		   ['Wed',15,21,20,19],['Thu',11,20,22,21],
		   ['Fri',18,17,23,22],['Sat',12,22,20,18],
		   ['Sun',13,15,19,16]])
    
# Print data for Wednesday
print(m[2])

# Print data for friday evening
print(m[4][3])

เมื่อดำเนินการโค้ดด้านบนจะให้ผลลัพธ์ดังนี้ -

['Wed', 15, 21, 20, 19]
23

การเพิ่มแถว

from numpy import * 
m = array([['Mon',18,20,22,17],['Tue',11,18,21,18],
		   ['Wed',15,21,20,19],['Thu',11,20,22,21],
		   ['Fri',18,17,23,22],['Sat',12,22,20,18],
		   ['Sun',13,15,19,16]])
    
m_r = append(m,[['Avg',12,15,13,11]],0)

print(m_r)

เมื่อดำเนินการโค้ดด้านบนจะให้ผลลัพธ์ดังนี้ -

[['Mon' '18' '20' '22' '17']
 ['Tue' '11' '18' '21' '18']
 ['Wed' '15' '21' '20' '19']
 ['Thu' '11' '20' '22' '21']
 ['Fri' '18' '17' '23' '22']
 ['Sat' '12' '22' '20' '18']
 ['Sun' '13' '15' '19' '16']
 ['Avg' '12' '15' '13' '11']]

การเพิ่มคอลัมน์

เราสามารถเพิ่มคอลัมน์ลงในเมทริกซ์โดยใช้เมธอด insert () ที่นี่เราต้องพูดถึงดัชนีที่เราต้องการเพิ่มคอลัมน์และอาร์เรย์ที่มีค่าใหม่ของคอลัมน์ที่เพิ่ม ในตัวอย่างด้านล่างเราเพิ่มคอลัมน์ใหม่ที่ตำแหน่งที่ห้าจากจุดเริ่มต้น

from numpy import * 
m = array([['Mon',18,20,22,17],['Tue',11,18,21,18],
		   ['Wed',15,21,20,19],['Thu',11,20,22,21],
		   ['Fri',18,17,23,22],['Sat',12,22,20,18],
		   ['Sun',13,15,19,16]])
    
m_c = insert(m,[5],[[1],[2],[3],[4],[5],[6],[7]],1)

print(m_c)

เมื่อดำเนินการโค้ดด้านบนจะให้ผลลัพธ์ดังนี้ -

[['Mon' '18' '20' '22' '17' '1']
 ['Tue' '11' '18' '21' '18' '2']
 ['Wed' '15' '21' '20' '19' '3']
 ['Thu' '11' '20' '22' '21' '4']
 ['Fri' '18' '17' '23' '22' '5']
 ['Sat' '12' '22' '20' '18' '6']
 ['Sun' '13' '15' '19' '16' '7']]

ลบแถวในรูปแบบเมทริกซ์

เราสามารถลบแถวออกจากเมทริกซ์โดยใช้เมธอด delete () เราต้องระบุดัชนีของแถวและค่าแกนซึ่งเป็น 0 สำหรับแถวและ 1 สำหรับคอลัมน์

from numpy import * 
m = array([['Mon',18,20,22,17],['Tue',11,18,21,18],
		   ['Wed',15,21,20,19],['Thu',11,20,22,21],
		   ['Fri',18,17,23,22],['Sat',12,22,20,18],
		   ['Sun',13,15,19,16]])
    
m = delete(m,[2],0)

print(m)

เมื่อดำเนินการโค้ดด้านบนจะให้ผลลัพธ์ดังนี้ -

[['Mon' '18' '20' '22' '17']
 ['Tue' '11' '18' '21' '18']
 ['Thu' '11' '20' '22' '21']
 ['Fri' '18' '17' '23' '22']
 ['Sat' '12' '22' '20' '18']
 ['Sun' '13' '15' '19' '16']]

ลบคอลัมน์จากเมทริกซ์

เราสามารถลบคอลัมน์ออกจากเมทริกซ์โดยใช้เมธอด delete () เราต้องระบุดัชนีของคอลัมน์และค่าแกนซึ่งเป็น 0 สำหรับแถวและ 1 สำหรับคอลัมน์

from numpy import * 
m = array([['Mon',18,20,22,17],['Tue',11,18,21,18],
		   ['Wed',15,21,20,19],['Thu',11,20,22,21],
		   ['Fri',18,17,23,22],['Sat',12,22,20,18],
		   ['Sun',13,15,19,16]])
    
m = delete(m,s_[2],1)

print(m)

เมื่อดำเนินการโค้ดด้านบนจะให้ผลลัพธ์ดังนี้ -

[['Mon' '18' '22' '17']
 ['Tue' '11' '21' '18']
 ['Wed' '15' '20' '19']
 ['Thu' '11' '22' '21']
 ['Fri' '18' '23' '22']
 ['Sat' '12' '20' '18']
 ['Sun' '13' '19' '16']]

อัปเดตแถวในเมทริกซ์

ในการอัปเดตค่าในแถวของเมทริกซ์เราเพียงแค่กำหนดค่าใหม่ที่ดัชนีของแถว ในตัวอย่างด้านล่างค่าทั้งหมดสำหรับข้อมูลของวันพฤหัสบดีจะถูกทำเครื่องหมายเป็นศูนย์ ดัชนีสำหรับแถวนี้คือ 3

from numpy import * 
m = array([['Mon',18,20,22,17],['Tue',11,18,21,18],
		   ['Wed',15,21,20,19],['Thu',11,20,22,21],
		   ['Fri',18,17,23,22],['Sat',12,22,20,18],
		   ['Sun',13,15,19,16]])
    
m[3] = ['Thu',0,0,0,0]

print(m)

เมื่อดำเนินการโค้ดด้านบนจะให้ผลลัพธ์ดังนี้ -

[['Mon' '18' '20' '22' '17']
 ['Tue' '11' '18' '21' '18']
 ['Wed' '15' '21' '20' '19']
 ['Thu' '0' '0' '0' '0']
 ['Fri' '18' '17' '23' '22']
 ['Sat' '12' '22' '20' '18']
 ['Sun' '13' '15' '19' '16']]