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