Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

NumPy Array:คู่มือสำหรับผู้เริ่มต้น

รายการคือประเภทของข้อมูลที่มีลำดับขององค์ประกอบ รายการเป็นประเภทข้อมูลที่มีประโยชน์เพราะช่วยให้คุณสามารถเก็บค่าที่เกี่ยวข้องหลายค่าไว้ในตัวแปรเดียว ด้วยรายการ คุณสามารถเก็บชื่อรองเท้า 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 อย่างโปรแกรมเมอร์ผู้เชี่ยวชาญแล้ว!