.....................................................................................................
จากการทดสอบ หากเราต้องการ จะ สร้าง เวคเตอร์ a ที่ประกอบด้วย ลำดับของเลขที่ เกิดจาก ลำดับยกกำลัง 2 ส่วน b เป็น ยกกำลัง 3 แล้ว จาก Code ของ python ธรรมดา และ ส่วนของ numpy จะทำได้ดังนี้
------------------------------------------------
def pythonsum(n):
a = list(range(n))
b = list(range(n))
c = []
for i in range(len(a)):
a[i] = i ** 2
b[i] = i ** 3
c.append(a[i] + b[i])
return c
print(pythonsum(10))
import numpy
def numpysum(n):
a = numpy.arange(n) ** 2
b = numpy.arange(n) ** 3
c = a + b
return c
print(numpysum(10))
------------------------------------------------
จะเห็นได้ว่า numpy ไม่จำเป็นต้องใช้ loop for ในการช่วย เลย และยังสามารถ จัดการ บวกกันได้อย่างถูกต้อง ซึ่งช่วยให้เขียนง่ายขึ้นมาก
และยังช่วยให้การทำงานเร็วขึ้นอย่างมาก สามารถทำสอบได้โดยโค้ดต่อไปนี้
import sys
from datetime import datetime
import numpy as np
def numpysum(n):
a = np.arange(n) ** 2
b = np.arange(n) ** 3
c = a + b
return c
def pythonsum(n):
a = list(range(n))
b = list(range(n))
c = []
for i in range(len(a)):
a[i] = i ** 2
b[i] = i ** 3
c.append(a[i] + b[i])
return c
size = int(sys.argv[1])
start = datetime.now()
c = pythonsum(size)
delta = datetime.now() - start
print("The last 2 elements of the sum", c[-2:])
print("PythonSum elapsed time in microseconds", delta.microseconds)
start = datetime.now()
c = numpysum(size)
delta = datetime.now() - start
print("The last 2 elements of the sum", c[-2:])
print("NumPySum elapsed time in microseconds", delta.microseconds)
ผลการ ทำงาน
พบว่า numpy นั้นสามารถ ดำเนินการได้เร็วกว่าเป็นอย่างมาก
แต่ ว่า อาเรย์ที่ ได้ print ออกมานั้น พบว่า ไม่มี , ซึ่งยังไม่ทราบว่าเพราะเหตุใด


ไม่มีความคิดเห็น:
แสดงความคิดเห็น