สูตรโกง NumPy
คุณต้องการดู NumPy อย่างรวดเร็วซึ่งจะช่วยให้คุณทำงานจริงได้หรือไม่ บทความนี้เป็นสิ่งที่คุณต้องการ!
เริ่มต้นใช้งาน
NumPyเป็นแพ็คเกจการคำนวณทางวิทยาศาสตร์ใน Python มันมาพร้อมกับฟังก์ชันที่กำหนดไว้ล่วงหน้าสำหรับพีชคณิตเชิงเส้น การแปลงฟูเรียร์ และเมทริกซ์ โดยทั่วไปแล้ว NumPy ใช้สำหรับแอปพลิเคชัน Data Science
ในการเริ่มต้น ก่อนอื่นต้องแน่ใจว่าคุณมี Python และ NumPy ในระบบของคุณ วิธีรับขึ้นอยู่กับระบบและ IDE ที่คุณต้องการ แต่ฉันขอแนะนำ Anaconda ด้วยการติดตั้ง Anaconda ขั้นพื้นฐาน คุณสามารถไปที่เทอร์มินัลแล้วเรียกใช้ “conda install numpy” & voila!
ตอนนี้ เรามาสร้าง ไฟล์ example.pyเพื่อเริ่มใช้งานกัน
หมายเหตุ: หากเราต้องสร้างโปรเจ็กต์แทนที่จะใช้ไฟล์ตัวอย่างไฟล์เดียวเพื่อใช้งาน เราจะต้องสร้างไดเร็กทอรีและ ไฟล์ __init__.pyภายในนั้น
คุณควรเพิ่มบรรทัดต่อไปนี้ที่ด้านบนของไฟล์เพื่อให้สามารถทำงานกับ NumPy ภายในไฟล์ได้
นำเข้า numpy เป็น np
หมายเหตุ:โดยทั่วไปเราจะนำเข้าเป็น np เพื่อที่เราจะได้ไม่ต้องพิมพ์ numpy ทุกครั้งที่เราเรียกใช้ฟังก์ชันจาก NumPy โปรดทราบว่าแม้สามารถเปลี่ยนแปลงได้npเป็นแบบแผนทั่วไป
หลังจากนั้น คุณสามารถรันโค้ดภายในไฟล์ตัวอย่างได้โดยไปที่เทอร์มินัลแล้วรันคำสั่ง:
ตัวอย่างหลาม.py
รายการเทียบกับอาร์เรย์
เราจะใช้อาร์เรย์เป็นจำนวนมากกับการดำเนินการ NumPy ของเรา ดังนั้นจะเป็นการดีกว่าที่จะชี้แจงสิ่งหนึ่ง: รายการและอาร์เรย์นั้นแตกต่างกันใน Python
ด้วย Arrays คุณสามารถประกาศโครงสร้างหลายมิติ เช่น เมทริกซ์ และคุณสามารถดำเนินการเชิงตัวเลขได้ภายใน แต่นั่นไม่ใช่กรณีของ List แบบเก่าที่เรียบง่าย ดังนั้น NumPy จึงต้องพึ่งพาอาร์เรย์เป็นอย่างมาก
รายการสามารถกำหนดให้กับค่าโดยไม่ต้องประกาศ แต่อาร์เรย์ไม่สามารถทำได้ ดังนั้นในการกำหนดอาร์เรย์ คุณต้องทำดังนี้
exampleArray = np.arrray ([10, 15, 20]) // อาร์เรย์มิติเดียว
หรือคุณสามารถกำหนดอาร์เรย์หลายมิติเป็น:
exampleArray2 = np.array([10, 15, 20], [50, 100, 150], [1, 2, 3])
คุณสามารถเรียกรายการภายในอาร์เรย์ได้ดังนี้:
exampleArray2 [1] // คืนค่า [50, 100, 150]
exampleArray2 [1] [0]// คืนค่า 50
วิธีการ
ด้านล่างนี้ คุณจะพบฟังก์ชันพื้นฐานส่วนใหญ่ที่ใช้โดยทั่วไปเมื่อทำงานกับ NumPy แม้ว่าจะมีจำนวนมาก แต่สิ่งต่อไปนี้ก็เพียงพอแล้วที่จะช่วยให้คุณเริ่มต้นได้
วิธีการสร้างอาร์เรย์
- np.arange(0, 10):สร้างอาร์เรย์มิติเดียวที่มีตัวเลข 0 ถึง 9 เป็นรายการ
- np.arange(0, 10, 3):สร้างอาร์เรย์มิติเดียวที่มีตัวเลขระหว่าง 0 ถึง 10 กระโดดไปที่ทุกๆ สาม ส่งกลับอาร์เรย์ที่มี 0,3,6,9 เป็นรายการ
- np.zeros(3):สร้างอาร์เรย์ 3 รายการที่มีค่า 0 สำหรับแต่ละรายการ
- np.ones(3):สร้างอาร์เรย์รายการ 3 รายการโดยมีค่า 1 สำหรับแต่ละรายการ
- np.linspace(0,20,5): รับ 5 ตัวเลขระหว่าง 0 ถึง 20 โดยมีขั้นตอนที่เท่ากันระหว่าง ส่งกลับอาร์เรย์ของรายการ 0, 5, 10, 15, 20 โปรดทราบว่าหากเราบอกว่าเลือก 6 รายการ รายการจะลอยแทนการรบกวนเพื่อให้แน่ใจว่ามีช่องว่างระหว่างนั้นเท่ากัน
- np.eye(3):สร้างเมทริกซ์เอกลักษณ์ที่มี 3 คอลัมน์และ 3 แถว ค่าเส้นทแยงมุมจะส่งกลับ 1 ทั้งหมด และค่าอื่นๆ ทั้งหมดจะส่งกลับ 0
- np.random.randn(5):สร้างอาร์เรย์มิติเดียวที่มีตัวเลขสุ่ม 5 รายการเป็นรายการ ตัวเลขสามารถเป็นประเภทจำนวนเต็มและ/หรือทศนิยม ลบและ/หรือบวก
- np.random.randn(5,5):สร้างเมทริกซ์ที่มี 5 แถวและ 5 คอลัมน์ที่มีค่าสุ่ม 25 ค่าเป็นรายการ
- np.random.randint(1, 10, 2):ส่งกลับตัวเลขสุ่มสองตัวที่มากกว่า 1 และน้อยกว่า 10
- myArray.reshape(5,5):รับอาร์เรย์มิติเดียวชื่อ myArray และส่งกลับเป็นเมทริกซ์ที่มี 5 แถวและ 5 คอลัมน์ โปรดทราบว่าหากมีจำนวนรายการในอาร์เรย์ไม่เพียงพอ ในกรณีตัวอย่าง 5 x 5 = 25 รายการ สิ่งนี้จะทำให้เกิดข้อผิดพลาดและใช้งานไม่ได้ วิธีนี้จะไม่เปลี่ยนอาร์เรย์เอง แต่จะส่งคืนอาร์เรย์เวอร์ชันที่เปลี่ยนแปลง
- myArray.max():ส่งกลับจำนวนที่มากที่สุดภายในรายการของอาร์เรย์ตัวเลข
- myArray.min():ส่งกลับจำนวนที่น้อยที่สุดภายในรายการของอาร์เรย์ตัวเลข
- myArray.argmax():ส่งกลับดัชนีของจำนวนที่มากที่สุดภายในรายการของอาร์เรย์ตัวเลข
- myArray.argmin():ส่งกลับดัชนีของจำนวนที่น้อยที่สุดภายในรายการของอาร์เรย์ตัวเลข
- myArray.shape:ส่งกลับรูปร่างของอาร์เรย์ ถ้าอาร์เรย์เป็นหนึ่งมิติที่มี 10 รายการ มันจะคืนค่า (10, ) ถ้าอาร์เรย์เป็นเมทริกซ์ที่ประกอบด้วย 5 คอลัมน์และ 6 แถว มันจะส่งกลับ (5,6) โปรดทราบว่านี่ไม่ใช่ฟังก์ชัน แต่เป็นแอตทริบิวต์แทน ดังนั้นจึงไม่มีวงเล็บเมื่อเรียกรูปร่าง
- myArray[5]:ส่งกลับรายการจากอาร์เรย์ด้วยหมายเลขดัชนี 5
- myArray[3:5]:ส่งกลับรายการระหว่างหมายเลขดัชนี 3 และ 5 รวมถึงรายการที่มีดัชนี 3 แต่ไม่รวม 5
- myArray[3:5] = -3:เปลี่ยนค่าของรายการระหว่างดัชนี 3 ถึง 5 เป็น -3
- myArray[:] = 30:เปลี่ยนค่าของรายการทั้งหมดภายในอาร์เรย์เป็น 30ทีละรายการ
- myArray = 30:เปลี่ยนประเภทของ myArray จากอาร์เรย์เป็นจำนวนเต็มและตั้งค่าเป็น 30
- newArray = myArray.copy():สร้างสำเนาของ myArray และตั้งค่าเป็น newArray โปรดทราบว่าหากคุณไม่ได้ใช้เมธอด .copy() คุณจะเห็นการเปลี่ยนแปลงทั้งหมดที่คุณทำกับ newArray สะท้อนใน myArray ด้วยเช่นกัน
ลองประกาศเมทริกซ์เป็น myMatrix = ( [5, 10, 15] , [1, 2, 3] , [0, 0, 0] )
- myMatrix[0]:ส่งกลับรายการที่มีดัชนีแถว 0 ซึ่งเป็นอาร์เรย์ จึงส่งกลับ [5, 10, 15]
- myMatrix[0] [1]:ส่งกลับรายการที่มีดัชนีคอลัมน์ 1 และดัชนีแถว 0 ดังนั้นในกรณีนี้จึงส่งคืนค่า 10
- myMatrix[0,1]:ส่งกลับรายการที่มีดัชนีคอลัมน์ 1 และดัชนีแถว 0 ดังนั้นในกรณีนี้จึงส่งคืนค่า 10
- myMatrix[1, 1:]:รับแถวที่มีดัชนี 1 ตามปกติ แต่ส่งคืนรายการที่มีดัชนีคอลัมน์เริ่มต้นจาก 1 (รวมถึง 1 เนื่องจาก splice ใช้งานได้กับ Python เสมอ) ดังนั้นในกรณีนี้จึงส่งคืน [2, 3]
- myMatrix[ [0,1] ]:คืนค่าของดัชนี 0 และ 1 ดังนั้นในกรณีของเราจึงคืนค่า ( [5, 10, 15] , [1, 2, 3] )
มากำหนดอาร์เรย์ myArray เพื่อใช้งานเป็น myArray = [ 5,10,15,20]
- myArray > 10:ส่งกลับอาร์เรย์ของการตัดสินจริงและเท็จตามเงื่อนไข ดังนั้นในกรณีของเราจะส่งกลับ [เท็จ เท็จ จริง จริง] โปรดทราบว่า tihs จะไม่เปลี่ยนค่าดั้งเดิมของ myArray แต่จะสร้าง awway ใหม่แทน
- myArray [myArray > 10]:ส่งกลับอาร์เรย์ใหม่ที่มีรายการที่ตรงตามเงื่อนไขเป็น [15, 20]
- myArray + myArray:คืนค่าอาร์เรย์ที่ค่ารวมดัชนีด้วยดัชนีและวางไว้บนดัชนีที่เกี่ยวข้อง ในกรณีของเราจะส่งกลับ [10, 20, 30, 40]
- myArray — myArray:คืนค่าอาร์เรย์ที่ค่าถูกลบด้วยดัชนีด้วยดัชนีและวางไว้บนดัชนีที่เกี่ยวข้อง ในกรณีของเราจะส่งกลับ [0, 0, 0, 0]
- myArray/myArray:คืนค่าอาร์เรย์ที่ค่าถูกแบ่งดัชนีด้วยดัชนีและวางไว้บนดัชนีที่เกี่ยวข้อง ในกรณีของเราจะส่งกลับ [1,1,1,1] โปรดทราบว่าหากมีค่าเป็น 0 ในดัชนีใดๆ เนื่องจากตัวเลขไม่สามารถหารด้วย 0 ได้ สิ่งนี้จะส่งคำเตือน & คืนค่า nan สำหรับดัชนีนั้น แต่แบ่งดัชนีอื่นๆ ตามปกติ
- np.sqrt(myArray):ส่งกลับอาร์เรย์ที่มีรากที่สองหากแต่ละค่าในดัชนีเดียวกัน ดังนั้น ถ้า myArray เป็น [25, 16, 36] ฟังก์ชันจะคืนค่า [ 5, 4, 6]