การเรียนรู้ NumPy: วิธีการเริ่มต้น การทำงานและฟังก์ชันของ Ndarray

เผยแพร่แล้ว: 2021-01-05

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

สารบัญ

ทำไมต้อง NumPy?

ไลบรารี Data Science อื่นๆ เช่น Pandas, Matplotlib และ Scikit-learn สร้างขึ้นจาก Numpy เนื่องจากมีลักษณะที่มีประสิทธิภาพสูง ไลบรารีนี้มี ndarray ซึ่งใช้แทนรายการ python ในตัว รายการ Python นั้นยอดเยี่ยมในการจัดเก็บค่า แต่มันมาพร้อมกับค่าใช้จ่ายในการดำเนินการที่เพิ่มขึ้น เนื่องจากมันเก็บพอยน์เตอร์ของตำแหน่งหน่วยความจำซึ่งเพิ่มโอเวอร์เฮดในแง่ของหน่วยความจำและการดำเนินการ

Numpy พบการใช้งานโดยตรงในด้านการประมวลผลภาพที่ภาพได้รับการประมวลผลเป็นเมทริกซ์หลายมิติสูงเพื่อทำการแปลงต่างๆ เช่น การเบลอ การเปลี่ยนสี และการตรวจจับวัตถุ

มาดูฟังก์ชันสำคัญบางอย่างของ Numpy ที่ผู้ใช้ Data Science ทุกคนควรรู้ แต่ก่อนหน้านั้น:

  1. รหัสฟังก์ชันทั้งหมดด้านล่างถือว่าไลบรารีถูกนำเข้าด้วยนามแฝง np เช่นนำเข้า numpy เป็น np
  2. คำว่า "array" จะใช้เพื่อกำหนด ndarray หลังจากจุดนี้

วิธีต่างๆ ในการเริ่มต้น

1. เว้นระยะเชิงเส้น

ฟังก์ชันนี้มีจุดมุ่งหมายเพื่อให้อาร์เรย์เว้นระยะเชิงเส้นภายในช่วงของค่าต่างๆ ฟังก์ชัน np.linspace(start, stop, num) โดยที่ start และ stop กำหนดช่วงของค่า และ num กำหนดจำนวนตัวอย่าง ส่งคืนค่าที่เว้นระยะเท่ากัน ในขณะที่ np.arange(start, stop, step) ส่งคืนค่าที่แตกต่างกัน ค่าขั้นตอน

2. ค่านิยมเฉพาะ

ในหลายกรณี คุณอาจต้องการเริ่มต้นเมทริกซ์ขนาดใหญ่ด้วยค่าต่างๆ เช่น หนึ่ง ศูนย์ เอกลักษณ์ หรือค่าคงที่ ขนาดของอาร์เรย์ถูกส่งผ่านเป็นทูเพิล Numpy ช่วยอำนวยความสะดวกในเรื่องนี้ผ่านฟังก์ชันต่างๆ:

    • np.zeros(ขนาด): องค์ประกอบเป็นศูนย์
    • np.ones(ขนาด): องค์ประกอบคือหนึ่ง
    • np.full(ขนาด ค่าคงที่): องค์ประกอบเป็นค่าคงที่ที่ส่งผ่าน
    • np.eye(ขนาด): องค์ประกอบในแนวทแยงเป็นองค์ประกอบและส่วนที่เหลือเป็นศูนย์ นี่คือเมทริกซ์เอกลักษณ์
    • np.empty(ขนาด): ว่างเปล่า matrix
    • np.random.random(ขนาด): เมทริกซ์ค่าสุ่มเริ่มต้นจากขนาดที่ระบุ

อ่าน: คำถามสัมภาษณ์ Numpy

Ndarray Operations

วัตถุประสงค์หลักของไลบรารีนี้คือการคำนวณที่มีประสิทธิภาพระหว่างอาร์เรย์ต่างๆ Numpy รองรับการดำเนินการทางคณิตศาสตร์และการปรับแต่งเกือบทุกประเภทที่ใช้องค์ประกอบอย่างชาญฉลาด บางส่วนมีการระบุไว้ด้านล่าง (สมมติว่าอาร์เรย์ A และ B ที่มีขนาดเท่ากันสองอาร์เรย์เริ่มต้นขึ้นด้วยค่าสุ่ม):

1. คณิตศาสตร์

  • np.add(A, B): การบวก
  • np.subtract(A, B): การลบ
  • np.divide(A, B): กอง
  • np.multiply(A, B): การคูณ
  • np.exp(A): ค่าเอ็กซ์โปเนนเชียล
  • np.sqrt(A): ค่ารากที่สอง
  • np.sin(A), cos(A), tan(A): ค่าตรีโกณมิติ
  • np.log(A): ค่าลอการิทึม
  • np.percentile(A ต้องการเปอร์เซ็นไทล์ แกน): เมื่อส่งค่าเปอร์เซ็นไทล์ เช่น 50 ฟังก์ชันจะคืนค่าเปอร์เซ็นไทล์ที่ 50 ของอาร์เรย์
  • A.dot(B): ส่งกลับผลคูณดอทของอาร์เรย์
  • A == B: การเปรียบเทียบองค์ประกอบอย่างชาญฉลาด
  • np.array_equal(A, B): การเปรียบเทียบอย่างชาญฉลาดของอาร์เรย์
  • A.sum(): ผลรวมขององค์ประกอบทั้งหมด
  • A.min(), max(): ค่าต่ำสุดและสูงสุด
  • A.cumsum(): ผลรวมสะสมขององค์ประกอบของอาร์เรย์
  • A.corrcoef(): สัมประสิทธิ์สหสัมพันธ์

2. การจัดการ

  • np.transpose(A) หรือ AT: ทรานสโพสของเมทริกซ์
  • A.ravel(): แผ่อาร์เรย์
  • A.reshape(new_shape): ปรับรูปร่างอาร์เรย์ (ที่นี่ส่งผ่านขนาดโดยตรงโดยไม่ต้องใส่ลงในทูเพิล) ขนาดใหม่ควรจะเท่ากับ
  • A.resize(ขนาด): เปลี่ยนรูปร่างของอาร์เรย์เป็นรูปร่างใดก็ได้ และละทิ้งองค์ประกอบอื่นๆ ที่ไม่ใช่ส่วนหนึ่งของรูปร่างใหม่นี้
  • np.concatenate((A,B), axis=1 หรือ 0)
  • np.vstack((A,B)): ซ้อนอาร์เรย์ในแนวตั้ง (แถว-ฉลาด)
  • np.hstack((A,B)): กองแนวนอน

เช็คเอาท์: Numpy vs Panda: ความแตกต่างระหว่าง

ฟังก์ชั่นเบ็ดเตล็ด

  • np.where(): นี่เป็นฟังก์ชันที่จำเป็นซึ่งไม่จำเป็นต้องมีคำสั่ง if-else ต้องใช้อาร์กิวเมนต์ที่สำคัญ 3 อย่าง ได้แก่ เงื่อนไข ค่าหากตรงตามเงื่อนไข และค่าหากไม่เป็นไปตามเงื่อนไข ตัวอย่างง่ายๆ ของสิ่งนี้คือเมื่อคุณต้องเพิ่มคอลัมน์เป็นสองเท่าตามเกณฑ์ที่กำหนด
  • np.intersect1d(): ฟังก์ชันนี้จะคืนค่าจุดตัดของอาร์เรย์ 1-d สองชุด ซึ่งหมายความว่าค่าทั่วไปของอาร์เรย์เหล่านี้จะถูกส่งกลับโดยฟังก์ชันนี้ หากอาร์เรย์ที่ส่งผ่านไม่ใช่ 1-d ก็จะถูกทำให้แบน
  • np.allclose(): เป็นฟังก์ชันที่น่าสนใจ มีบางสถานการณ์ที่คุณสามารถยอมรับได้ในระดับหนึ่งในขณะที่เปรียบเทียบอาร์เรย์หรือคุณต้องการค้นหาอาร์เรย์ที่คล้ายคลึงกัน ฟังก์ชันนี้ใช้อาร์เรย์และค่าความทนทานที่คุณต้องการ ตัวอย่างเช่น:
    • arr1 = np.array([1,2,3,4])
    • arr2 = np.array([2,3,4,5])
    • np.allclose(arr1, arr2, 0.5) : จะคืนค่า False
    • np.allclose(arr1, arr2, 1): จะคืนค่า True
  • argmin(), argmax() และ argsort(): ตามที่ชื่อแนะนำ ฟังก์ชันเหล่านี้จะคืนค่าดัชนีของชื่อที่เกี่ยวข้อง A.argmin() คืนค่าดัชนีองค์ประกอบขั้นต่ำ A.argmax() ตรงกันข้าม และ A.argsort() ส่งคืนดัชนีของอาร์เรย์ที่จัดเรียง ฟังก์ชันเหล่านี้มีประโยชน์เมื่อผลลัพธ์ขึ้นอยู่กับดัชนี
  • np.clip(): ใช้เพื่อแปลงค่าภายในช่วงที่กำหนด ตัวอย่างเช่น ถ้าอาร์เรย์มีค่าตั้งแต่ 1 ถึง 30 และคุณต้องการค่าระหว่าง 14 ถึง 27 โดยไม่สูญเสียค่าอื่นๆ ฟังก์ชันนี้จะขยายขนาดค่าที่น้อยกว่า 19 ถึง 19 และลดขนาดค่าที่มากกว่า 27 เป็น 27

บทสรุป

มีฟังก์ชันอื่นๆ อีกมากมายในขณะที่ทำงานบนอาร์เรย์ numpy แต่ฟังก์ชันเหล่านี้เป็นฟังก์ชันที่ใช้บ่อยที่สุด การดำเนินการที่ใช้กับคอลัมน์หรือชุดของ Pandas นั้นเป็นจริงบน ndarray เนื่องจากซีรีย์นั้นเป็น ndarray แบบมิติเดียว

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

หากคุณอยากเรียนรู้เกี่ยวกับวิทยาศาสตร์ข้อมูล ให้ลองดูประกาศนียบัตร PG ด้านวิทยาศาสตร์ข้อมูลของ IIIT-B และ upGrad ซึ่งสร้างขึ้นสำหรับมืออาชีพด้านการทำงานและเสนอกรณีศึกษาและโครงการมากกว่า 10 รายการ เวิร์กช็อปภาคปฏิบัติจริง การให้คำปรึกษากับผู้เชี่ยวชาญในอุตสาหกรรม 1- on-1 กับที่ปรึกษาในอุตสาหกรรม การเรียนรู้มากกว่า 400 ชั่วโมงและความช่วยเหลือด้านงานกับบริษัทชั้นนำ

เตรียมความพร้อมสู่อาชีพแห่งอนาคต

PG DIPLOMA จาก IIIT-B, การเรียนในห้องเรียนมากกว่า 100 ชั่วโมง, การเรียนออนไลน์มากกว่า 400 ชั่วโมง & การสนับสนุนด้านอาชีพ 360 องศา
เรียนรู้เพิ่มเติม