พื้นฐานการใช้ NumPy
ใน Python 3
Developer Team
BorntoDev Co., Ltd.
NumPy คืออะไร ?
NumPy เป็นชื่อของ library ที่ใช้ในการคำนวนทางคณิตศาสตร์ในภาษา Python ซึ่งภายในถูกเขียนด้วยภาษา C จึงทำงานได้เร็วและมีประสิทธิภาพ โดย NumPy มีความสามารถในการจัดการกับอาเรย์หลายมิติและข้อมูลแบบเมทริกซ์
เราสามารถติดตั้ง NumPy ได้ง่ายผ่าน package installer ของ Python ด้วยคำสั่ง
pip install numpy
เวลาจะใช้งานก็ import เข้ามาใช้งานได้เหมือนตัวอย่างด้านล่างนี้เลย
import numpy as np a = np.array([1,2,3]) print(a) # [1 2 3] print(type(a)) # <class 'numpy.ndarray'>
ประโยชน์ที่เจ๋ง ๆ ของ NumPy
มาลองดูประโยชน์ของ NumPy ที่จะเปลี่ยนให้เรื่องยากเป็นเรื่องง่ายหรือเรื่องที่ง่ายอยู่แล้วให้ง่ายขึ้นไปอีก รับรองว่ารู้เอาไว้ไม่เสียหายแน่นอน
การสร้าง Array
NumPy นั้นสามารถสร้างและจัดการกับ array หลายมิติได้ง่ายๆหลายวิธี
import numpy as np a = np.array([1, 2, 3]) # สร้าง array 1 มิติ print(a) # [1 2 3] print(a[0], a[1], a[2]) # 1 2 3 a[2] = 5 # เปลี่ยนค่าใน array print(a) # [1 2 5] b = np.array([[1,2,3],[4,5,6]]) # สร้าง array 2 มิติ print(b) # [[1 2 3] # [4 5 6]] # เราสามารถดูขนาดรูปร่างของ array ได้ print(a.shape) # (3,) print(b.shape) # (2, 3)
สร้าง Array ที่มีข้อมูลภายใน
นอกจากการสร้าง NumPy Array ขึ้นมาด้วยข้อมูลที่เรากำหนดแล้ว เรายังสามารถสร้างโดยระบุเพียงขนาดของ array และให้ข้อมูลภายในเป็นไปตามที่ต้องการได้ผ่านฟังก์ชันของ NumPy
import numpy as np zero = np.zeros((2,2)) # สร้าง array ที่ทุกค่าเป็น 0 print(zero) # [[0. 0.] # [0. 0.]] one = np.ones((3,2)) # สร้าง array ที่ทุกค่าเป็น 1 print(one) # [[1. 1.] # [1. 1.] # [1. 1.]] five = np.full((3,3), 5) # สร้าง array ที่ทุกค่าเป็นเลขที่ระบุ (5) print(five) # [[5 5 5] # [5 5 5] # [5 5 5]] identity = np.eye(5) # สร้างเมทริกซ์เออกลักษณ์ขนาด 5 x 5 print(identity) # [[1. 0. 0. 0. 0.] # [0. 1. 0. 0. 0.] # [0. 0. 1. 0. 0.] # [0. 0. 0. 1. 0.] # [0. 0. 0. 0. 1.]] random = np.random.random((3,3)) # สร้าง array ที่สุ่มค่าด้านใน print(random) # [[0.06410201 0.14923082 0.32935854] # [0.4784618 0.70607096 0.32578298] # [0.90210072 0.51487876 0.98004843]]
ทำให้ค่าใน Array อยู่ในช่วงที่กำหนด
สมมติเรามี array ที่มีข้อมูลหลากหลาย แต่เราต้องการที่จะแก้ไขให้ข้อมูลทั้งหมดอยู่ในช่วงที่เรากำหนด เราสามารถใช้ฟังก์ชัน clip() ในการแก้ไข array ได้ โดยที่ยังคงลำดับของข้อมูลไว้เหมือนเดิม ถ้าข้อมูลตัวไหนเกินค่าที่กำหนดก็จะถูกเปลี่ยนให้เป็นค่า max ส่วนถ้าน้อยกว่าที่กำหนดก็จะถูกเปลี่ยนเป็นค่า min
import numpy as np max_value = 4 min_value = 1 a = [1, 22, 99, 0, 6, 8, -2, 3, 4, 3, 1] print(np.clip(a, min_value, max_value)) # [1 4 4 1 4 4 1 3 4 3 1]
ค้นหาตำแหน่งของของข้อมูลที่ผ่านเงื่อนไข
NumPy มีฟังก์ชันในการค้นหาตำแหน่งของข้อมูลใน array ที่ทำให้เงื่อนไขที่เรากำหนดเป็นจริงได้ผ่านฟังก์ชัน where()
import numpy as np a = np.array([2, 3, 4, 5, 1, 2]) print(np.where(a % 2 == 0)) # (array([0, 2, 5]),)
หา Percentile
NumPy มีฟังก์ชัน percentile() ทำให้เราสามารถหา percentile ที่ต้องการได้ง่ายๆในคำสั่งเดียว
import numpy as np a = np.array([1,2,3,4,5,6,7,8,9,10]) print(np.percentile(a, 50, axis =0)) # 5.5 b = np.array([5, 1, 3, 7, 9]) print(np.percentile(b, 25, axis =0)) # 3.0