รายการคือประเภทของข้อมูลที่มีลำดับขององค์ประกอบ รายการเป็นประเภทข้อมูลที่มีประโยชน์เพราะช่วยให้คุณสามารถเก็บค่าที่เกี่ยวข้องหลายค่าไว้ในตัวแปรเดียว ด้วยรายการ คุณสามารถเก็บชื่อรองเท้า 10 คู่ไว้ในตัวแปรเดียว คุณสามารถจัดเก็บรายการซื้อที่คุณทำที่ร้านค้าในตัวแปรเดียว
แม้ว่าชนิดข้อมูลรายการในตัวจะมีประสิทธิภาพอยู่แล้ว แต่สำหรับกรณีการใช้งานขั้นสูง คุณอาจพบว่าข้อมูลดังกล่าวขาดหายไป นั่นคือที่มาของประเภทข้อมูลอาร์เรย์ของ NumPy ไลบรารี NumPy สามารถใช้เพื่อสร้างอาร์เรย์ที่มีหลายมิติได้อย่างง่ายดาย
ในคู่มือนี้ เราจะพูดถึงว่าอาร์เรย์ NumPy คืออะไร เหตุใดจึงมีประโยชน์ และวิธีที่คุณสามารถทำงานกับอาร์เรย์ NumPy ในโค้ดของคุณ เริ่มกันเลย!
อาร์เรย์ NumPy คืออะไร
อาร์เรย์ NumPy เป็นอ็อบเจ็กต์อาร์เรย์ที่ใช้ภายในไลบรารี NumPy Python NumPy ซึ่งย่อมาจาก Numerical Python เป็นแพ็คเกจที่มักใช้สำหรับการคำนวณทางวิทยาศาสตร์และคณิตศาสตร์ มันมาพร้อมกับเครื่องมือมากมายที่สามารถช่วยในการวิเคราะห์ข้อมูลและคณิตศาสตร์ขั้นสูง
ใน vanilla Python (Python ที่ไม่มีแพ็คเกจภายนอก) อาร์เรย์นั้นมีประสิทธิภาพ แต่สามารถประมวลผลได้ช้า ในทางกลับกัน NumPy arrays ตั้งเป้าที่จะเป็นลำดับความสำคัญที่เร็วกว่าอาร์เรย์ Python แบบเดิม
การเพิ่มประสิทธิภาพนี้ทำได้สำเร็จเนื่องจากอาร์เรย์ NumPy เก็บค่าไว้ในที่เดียวที่ต่อเนื่องกันในหน่วยความจำ ทำให้ Python เข้าถึงและจัดการรายการได้ง่าย
วิธีการประกาศ NumPy Array
ในการเริ่มต้น ให้ตั้งค่าอาร์เรย์ NumPy สำหรับบทช่วยสอนนี้ เราจะเก็บค่าสตริงไว้ในอาร์เรย์ของเรา ค่าสตริงเหล่านี้เป็นรายการขนมหวานที่มีให้ในร้านกาแฟในท้องถิ่น เราจะเริ่มต้นด้วยการนำเข้าไลบรารี NumPy:
import numpy as np
โค้ดบรรทัดนี้นำเข้า numpy
จาก Python และกำหนดชื่อห้องสมุด np
. ซึ่งหมายความว่าเมื่อใดก็ตามที่เราต้องการทำงานกับอาร์เรย์ของเรา เราเพียงแค่เรียก np
.
81% ของผู้เข้าร่วมกล่าวว่าพวกเขารู้สึกมั่นใจมากขึ้นเกี่ยวกับโอกาสในการทำงานด้านเทคโนโลยีหลังจากเข้าร่วม bootcamp จับคู่กับ Bootcamp วันนี้
ผู้สำเร็จการศึกษาจากหลักสูตร bootcamp โดยเฉลี่ยใช้เวลาน้อยกว่าหกเดือนในการเปลี่ยนอาชีพ ตั้งแต่เริ่มต้น bootcamp ไปจนถึงหางานแรก
ต่อไป เราจะประกาศอาร์เรย์ของเราโดยใช้อินเทอร์เฟซอาร์เรย์:
treats = np.array(["Blueberry Muffin", "Cinnamon Bun", "Jammy Shortbread"]) print(treats)
อาร์เรย์ของเรามีค่าสตริงสี่ค่า เช่นเดียวกับอาร์เรย์ Python แบบดั้งเดิม เราได้ใส่รายการทั้งหมดในรายการของเราไว้ในวงเล็บเหลี่ยม ในการประกาศอาร์เรย์ NumPy เราได้ใช้วิธีอาร์เรย์ที่เป็นส่วนหนึ่งของ np
. สิ่งนี้จะสร้าง ndarray
ออบเจ็กต์ซึ่งเป็นประเภทอาร์เรย์ NumPy ในตัว
รหัสของเราส่งคืนสำเนาของอาร์เรย์ดั้งเดิมของเรา โดยแยกเป็นอาร์เรย์ NumPy:
['Blueberry Muffin' 'Cinnamon Bun' 'Jammy Shortbread']
เพียงเท่านี้ เราก็มีอาร์เรย์ที่ใช้งานได้แล้ว
อาร์เรย์ NumPy:ขนาด
เมื่อเราพูดถึงมิติใน NumPy เราไม่ได้หมายถึงโลกใหม่อย่างที่คุณเห็นในภาพยนตร์ มิติข้อมูลในอาร์เรย์คือระดับความลึกหนึ่งระดับภายในอาร์เรย์นั้น เมื่อใช้คำว่า มิติ มันหมายถึงอาร์เรย์ที่ซ้อนกัน เหล่านี้เป็นอาร์เรย์ที่มีอาร์เรย์
อาร์เรย์สามารถมีมิติข้อมูลจำนวนเท่าใดก็ได้ อาร์เรย์ส่วนใหญ่ที่คุณจะใช้งานจะเป็นอาร์เรย์ 1-D, 2-D หรือ 3-D ตัว “D” ย่อมาจากมิติ
NumPy 1-D Array
ในตัวอย่างแรกของเรา เราได้สร้างอาร์เรย์ 1-D นี่คืออาร์เรย์ที่มีอาร์เรย์ 0-D (หรือรายการ) เป็นองค์ประกอบ อาร์เรย์ส่วนใหญ่ที่คุณจะใช้งานจะเป็น 1-D
มาสร้างอาร์เรย์ที่เก็บราคาของขนมที่ร้านกาแฟกันเถอะ:
import numpy as np prices = np.array([1.95, 2.00, 2.05]) print(prices)
รหัสของเราส่งคืนอาร์เรย์ในมิติเดียว โดยจัดเก็บค่าของเรา:[1.95 2. 2.05]
ในการเข้าถึงองค์ประกอบจากอาร์เรย์ 1-D คุณสามารถใช้ไวยากรณ์เดียวกับที่ทำกับรายการ Python มาเรียกข้อมูลรายการที่สองในรายการของเรา:
print(prices[1])
รหัสของเราส่งคืนสินค้าที่มีค่าดัชนี 1 ซึ่งก็คือ:2
หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับอาร์เรย์ Python โปรดอ่านคู่มือเริ่มต้นของเราเกี่ยวกับอาร์เรย์ Python
NumPy 2-D Array
ไม่ใช่ทุกอาร์เรย์ที่เป็น 1-D สมมติว่าเราต้องการเก็บอาร์เรย์ที่มีสองอาร์เรย์ หนึ่งอาร์เรย์เก็บขนมหวานที่ขายในร้านกาแฟ แถวอื่นเก็บรายชื่อกาแฟที่ขายในร้าน สิ่งเหล่านี้เป็นส่วนหนึ่งของ menu items
อาร์เรย์
มาสร้างอาร์เรย์นี้โดยใช้ NumPy:
import numpy as np menu_items = np.array([ ["Blueberry Muffin", "Cinnamon Bun", "Jammy Shortbread"], ["Cappuccino", "Espresso", "Mocha"] ]) print(menu_items)
อาร์เรย์ผลลัพธ์คือ:
[['Blueberry Muffin' 'Cinnamon Bun' 'Jammy Shortbread'] ['Cappuccino' 'Espresso' 'Mocha']]
อาร์เรย์ที่สร้างขึ้นใหม่ของเรามีสองมิติ อาร์เรย์แรกในอาร์เรย์ของเราประกอบด้วยรายการขนมหวาน อาร์เรย์ที่สองมีรายการกาแฟ ขอให้สังเกตว่าอาร์เรย์ทั้งสองนี้อยู่ภายในวงเล็บเหลี่ยมคู่หนึ่งซึ่งเชื่อมต่ออาร์เรย์ทั้งสอง
การดึงรายการจากอาร์เรย์ 2 มิติทำงานแตกต่างกันเล็กน้อยใน NumPy มากกว่าใน Python ในการเข้าถึงองค์ประกอบจากอาร์เรย์ 2 มิติ คุณต้องแยกหมายเลขดัชนีของค่าที่คุณต้องการดึงออกจากอาร์เรย์
พิจารณารหัสนี้:
print(menu_items[0, 2])
รหัสของเราส่งคืน:Jammy Shortbread เราได้เรียกค้นรายการที่มีค่าดัชนี 2 ที่เก็บไว้ในอาร์เรย์ที่มีค่าดัชนี 0 ในกรณีนี้ เราได้ดึงข้อมูลรายการสุดท้ายในอาร์เรย์ซึ่งเก็บขนมหวานที่ขายในร้านกาแฟพี>
NumPy 3-D Array
มาเพิ่มอีกมิติกันเถอะ! อาร์เรย์ NumPy สามารถมีอาร์เรย์ 3 มิติได้ นี่คืออาร์เรย์ที่มีอาร์เรย์ 2 มิติ
สมมติว่าเราต้องการเก็บค่าต่อไปนี้:
- อาหารหวานและไม่หวาน (คู่กัน แต่แยกกัน) และ
- เครื่องดื่มที่มีคาเฟอีนและไม่มีคาเฟอีน (จับคู่แยกกัน)
ค่าทั้งหมดเหล่านี้ควรเก็บไว้ในอาร์เรย์เดียว ขนาดของอาร์เรย์นี้คือ:
- 1-D:รายการเมนูทั้งหมด
- 2-D:หวาน และ อาหารไม่หวาน มีคาเฟอีน และ เครื่องดื่มไม่มีคาเฟอีน
- 3 มิติ:อาหารหวาน อาหารไม่หวาน เครื่องดื่มไม่มีคาเฟอีน
มาสร้างอาร์เรย์นี้โดยใช้ NumPy วางโค้ดต่อไปนี้ลงในไฟล์ Python:
import numpy as np menu_items = np.array([ [ ["Blueberry Muffin", "Cinnamon Bun", "Jammy Shortbread"], ["Smoked Bacon Roll", "Tuna Melt Panini", "Cheese and Tomato Toastie"] ], [ ["Cappuccino", "Espresso", "Mocha"], ["Apple Juice", "Water", "Orange Juice"] ] ]) print(menu_items)
รหัสของเราส่งคืน:
[[['Blueberry Muffin' 'Cinnamon Bun' 'Jammy Shortbread'] ['Smoked Bacon Roll' 'Tuna Melt Panini' 'Cheese and Tomato Toastie']] [['Cappuccino' 'Espresso' 'Mocha'] ['Apple Juice' 'Water' 'Orange Juice']]]
เราได้สร้างอาร์เรย์ 3 มิติพร้อมข้อมูลทั้งหมดที่เราพูดถึงก่อนหน้านี้ อาร์เรย์นี้เป็นรายการเมนูทั้งหมดที่นำเสนอโดยร้านกาแฟ
การเข้าถึงรายการจากอาร์เรย์ 3 มิติทำงานเหมือนกับไวยากรณ์ที่คุณใช้เพื่อเข้าถึงรายการจากอาร์เรย์ 2 มิติ ข้อแตกต่างคือ คุณต้องระบุหมายเลขดัชนีที่สามเพื่อดึงข้อมูลรายการจากอาร์เรย์สามมิติ มาดึง “มอคค่า” จากอาร์เรย์ของเรา:
print(menu_items[1, 0, 2])
รหัสของเราส่งคืน:Mocha
1 คือหมายเลขดัชนีของมิติที่ 1 ที่เราต้องการเข้าถึง (1 สอดคล้องกับเครื่องดื่มของเรา); 0 คือหมายเลขดัชนีของมิติที่ 2 (0 สอดคล้องกับเครื่องดื่มที่มีคาเฟอีน); 2 คือเลขดัชนีของมิติที่ 3 (2 ตรงกับมอคค่า)
นับขนาดในอาร์เรย์
อาร์เรย์ NumPy อาจดูซับซ้อนเมื่อคุณเริ่มเพิ่มมิติข้อมูลใหม่ เรายังไม่ได้สำรวจอาร์เรย์ที่มีมากกว่าสามมิติ! โชคดีสำหรับคุณ มีทางลัดที่สะดวกซึ่งคุณสามารถใช้คำนวณจำนวนมิติที่อาร์เรย์มี
วางโค้ดต่อไปนี้ลงในไฟล์ Python:
import numpy as np menu_items = np.array([ ["Blueberry Muffin", "Cinnamon Bun", "Jammy Shortbread"], ["Cappuccino", "Espresso", "Mocha"] ]) print(menu_items.ndim)
เรียกใช้รหัสของเรา ค่า "2" จะถูกส่งกลับ สิ่งนี้บอกเราว่าอาร์เรย์ของเรามีสองมิติ ซึ่งเราสามารถเห็นได้ว่าเป็นจริงโดยการวิเคราะห์อาร์เรย์ด้านบนของเรา
บทสรุป
อาร์เรย์ NumPy เป็นวิธีที่ยืดหยุ่นในการจัดเก็บค่าที่คล้ายกัน เร็วกว่าและมีประสิทธิภาพมากกว่าอาร์เรย์ Python แบบเดิม คุณสามารถทำงานกับหลายมิติโดยใช้อาร์เรย์ NumPy ได้อย่างง่ายดาย สิ่งนี้ทำได้ยากกว่าใน vanilla Python
ตอนนี้คุณพร้อมที่จะเริ่มใช้อาร์เรย์ NumPy อย่างโปรแกรมเมอร์ผู้เชี่ยวชาญแล้ว!