ในบทความนี้ เราจะเรียนรู้เกี่ยวกับ vectorization และเทคนิคต่างๆ ที่เกี่ยวข้องกับการใช้งาน Python 3.x หรือก่อนหน้านั้น
เวกเตอร์คืออะไร
Vectorization เป็นเทคนิคในการใช้อาร์เรย์โดยไม่ต้องใช้ลูป การใช้ฟังก์ชันแทนสามารถช่วยลดเวลาทำงานและเวลาดำเนินการของโค้ดได้อย่างมีประสิทธิภาพ มีการดำเนินการหลายอย่างบนเวคเตอร์แทนที่จะเป็นอาร์เรย์ เช่น ดอทผลิตภัณฑ์ของเวกเตอร์ ซึ่งเรียกอีกอย่างว่าผลคูณสเกลาร์เนื่องจากให้ผลลัพธ์เดียว ผลิตภัณฑ์ภายนอกซึ่งส่งผลให้เมทริกซ์กำลังสองของมิติเท่ากับ (ความยาว X ยาว) ของเวกเตอร์ องค์ประกอบ การคูณอย่างชาญฉลาดซึ่งผลิตภัณฑ์องค์ประกอบของดัชนีเดียวกันและมิติของเมทริกซ์ยังคงไม่เปลี่ยนแปลง
ผลิตภัณฑ์จุด / ผลิตภัณฑ์ภายใน
มาดูการใช้งานกัน
ตัวอย่าง
import time import numpy import array p = array.array('q') for i in range(100000,200000): p.append(i); q = array.array('q') for i in range(200000, 300000): q.append(i) # classic dot product tic = time.process_time() dot_value = 0.0; for i in range(len(a)): dot_value += p[i] * q[i] toc = time.process_time() print("dot_product of vector arrays = "+ str(dot_value)); print("Computation time taken = " + str(1000*(toc - tic )) + "ms") n_tic = time.process_time() n_dot_product = numpy.dot(a, b) n_toc = time.process_time() print("\nn_dot_product of vector arrays = "+str(n_dot_product)) print("Computation time taken= "+str(1000*(n_toc - n_tic))+"ms")
ผลลัพธ์
dot_product of vector arrays = 3833313333350000.0 Computation time taken = 116.51723400000068ms n_dot_product of vector arrays = 3833313333350000 Computation time taken= 2.5412239999997865ms
ทีนี้มาพูดถึงฟังก์ชั่นที่ใช้ bouve กันแบบละเอียด
ภายนอก(a,b) − ฟังก์ชันนี้รับอาร์เรย์ numpy สองตัวเป็นตัวแปรอินพุตและส่งกลับผลิตภัณฑ์ภายนอกของเวกเตอร์สองตัว
คูณ (a, b) − ฟังก์ชันนี้รับอาร์เรย์ numpy สองตัวเป็นตัวแปรอินพุตและส่งกลับผลิตภัณฑ์เมทริกซ์ของสองอาร์เรย์
จุด (a, b) − ฟังก์ชันนี้รับอาร์เรย์ numpy สองตัวเป็นตัวแปรอินพุตและส่งกลับค่า dot product ของอาร์เรย์สองอาร์เรย์
ศูนย์((n, m)) − ฟังก์ชันนี้ใช้รูปร่างและประเภทเป็นตัวแปรอินพุตและส่งคืนเมทริกซ์ของรูปร่างและประเภทที่กำหนด โดยกำหนดค่าเริ่มต้นด้วยศูนย์
process_time() − ฟังก์ชันนี้จะคืนค่า (เป็นเศษเสี้ยววินาที) ของผลรวมของระบบและเวลา CPU ของผู้ใช้ของกระบวนการปัจจุบัน ไม่รวมเวลาที่ผ่านไประหว่างการนอนหลับ
บทสรุป
ในบทความนี้ เราได้เรียนรู้เกี่ยวกับ vectorization ใน Python