NumPy หรือ Numerical Python เป็น library ของ Python ที่ใช้ในการคำนวณเชิงตรรกะ

Operations หรือ วิธีการดำเนินการกับ array ใน NumPy นั้นมีหลายวิธี Arithmetic Operations คือการดำเนินการทางคณิตศาสตร์ สามารถใช้ดำเนินการ array ได้

การดำเนินการทางคณิตศาตร์ใน NumPy Array มี 7 แบบด้วยกันดังนี้

Addition (การบวก)

 x = np.arange(1,5)
 y = np.array([2,4,5,6])
 c = x+y
 print(c)

output:
[ 3  6  8 10]

ในตัวอย่างมี 2 arrays แต่ละ array มีข้อมูลทั้งหมด 4 ตัว มีวิธีสร้าง array ต่างกัน คือ x ใช้ numpy.arange() สร้าง ส่วน y ใช้ numpy.array() สร้าง

เมื่อเราใช้เครื่องหมายบวก หรือการดำเนินการทางคณิตศาสตร์ด้วยการบวก จะได้ผลลัพธ์เป็นผลบวกระหว่างข้อมูลทั้งสองตัวที่อยู่ในตำแหน่ง index เดียวกันของทั้งสอง array

การใช้เครื่องหมายบวกกับ array ไม่เท่ากับการ joint array เข้าด้วยกัน

Subtraction (การลบ)

x = np.arange(1,5)
y = np.array([2,4,5,6])
c = x-y
print(c)

output:
[-1 -2 -2 -2]

Multiplication (การคูณ)

x = np.arange(1,5)
y = np.array([2,4,5,6])
c = x*y

output:
[ 2  8 15 24]

เครื่องหมายที่ใช้คือเครื่องหมาย asterisk *

Division (การหาร)

x = np.arange(8,15,2)
y = np.array([2,4,6,8])
c = x/y
print(c)

output:
[4.   2.5  2.   1.75]

เครื่องหมายที่ใช้คือเครื่องหมาย slash /

Modulus (การหารเอาเศษ)

x = np.arange(8,15,2)
y = np.array([2,4,6,8])
c = x%y
print(c)

output:
[0 2 0 6]

เครื่องหมายที่ใช้คือเครื่องหมายเปอร์เซ็นต์ %

ผลลัพธ์ที่ได้จะเป็นเศษที่ได้จากการหารเท่านั้น จะแตกต่างจากการหารปกติ เช่น 8 หาร 2 ได้ 4 ไม่เหลือเศษ หมายความว่าเศษเป็น 0 ผลลัพธ์ที่ได้คือ 0 เป็นต้น

Exponent (การยกกำลัง)

x = np.arange(8,15,2)
y = np.arange(1,5)
c = x**y
print(c)

output:
[8 100 1728 38416]

เครื่องหมายที่ใช้คือเครื่องหมาย asterisk 2 อัน **

เป็นการนำข้อมูลแต่ละตัวของ array x มายกกำลังด้วยข้อมูลแต่ละตัวของ array y เช่น ข้อมูลแรกใน array x คือ 8 นำมายกกำลัง 1 ได้ผลลัพธ์เท่ากับ 8 เป็นต้น

Floor Division

x = np.arange(8,15,2)
y = np.array([3,6,4,3])
c = x//y
print(c)

output:
[2 1 3 4]

ใช้เครื่องหมาย slash / ซ้ำกัน 2 อัน

เป็นการหารที่ไม่เอาเศษที่ได้จากการหาร เช่น 8 หาร 3 ได้ 2.66666667 เราจะเอาแค่ 2 เท่านั้น เป็นต้น ผลที่ได้จากหารแบบ floor division จะไม่มีจุดทศนิยม

เมื่อต้องการใช้การดำเนินการทางคณิตศาสตร์ จำนวนข้อมูลของ arrays ที่นำมาดำเนินการต้องมีจำนวนเท่ากัน เช่น หาก array แรกมีข้อมูล 4 ตัว array ที่สองก็ต้องมีข้อมูล 4 ตัวด้วย หากจำนวนข้อมูลของทั้งสอง arrays มีไม่เท่ากัน จะเกิด ValueError

x = np.arange(1,6)
y = np.array([2,4,5,6])
c = x-y
print(c)

output:
ValueError: operands could not be broadcast together with shapes (5,) (4,)