NumPy ufuncs
ufunc คืออะไร?
ufuncs ย่อมาจาก "Universal Functions" และเป็นฟังก์ชัน NumPy ที่ทำงานบนndarray
วัตถุ
ทำไมต้องใช้ ufuncs?
ufuncs ใช้เพื่อนำvectorization ไปใช้ ใน NumPy ซึ่งเร็วกว่าการวนซ้ำองค์ประกอบ
พวกเขายังจัดให้มีการออกอากาศและวิธีการเพิ่มเติม เช่น ลด สะสม ฯลฯ ซึ่งมีประโยชน์มากสำหรับการคำนวณ
ufuncs ยังใช้อาร์กิวเมนต์เพิ่มเติมเช่น:
where
อาร์เรย์บูลีนหรือเงื่อนไขที่กำหนดว่าการดำเนินการควรเกิดขึ้นที่ใด
dtype
กำหนดประเภทผลตอบแทนขององค์ประกอบ
out
อาร์เรย์เอาต์พุตที่ควรคัดลอกค่าส่งคืน
Vectorization คืออะไร?
การแปลงคำสั่งแบบวนซ้ำเป็นการดำเนินการแบบเวกเตอร์เรียกว่า vectorization
เร็วกว่าเนื่องจากซีพียูสมัยใหม่ได้รับการปรับให้เหมาะสมสำหรับการทำงานดังกล่าว
เพิ่มองค์ประกอบของสองรายการ
รายการ 1: [1, 2, 3, 4]
รายการ 2: [4, 5, 6, 7]
วิธีหนึ่งในการทำคือวนซ้ำทั้งสองรายการแล้วรวมแต่ละองค์ประกอบ
ตัวอย่าง
หากไม่มี ufunc เราสามารถใช้zip()
วิธีการในตัวของ Python ได้:
x = [1, 2, 3, 4]
y = [4, 5, 6, 7]
z = []
for i, j in zip(x, y):
z.append(i + j)
print(z)
NumPy มี ufunc สำหรับสิ่งนี้ ซึ่งเรียกadd(x, y)
ว่าจะให้ผลลัพธ์เหมือนกัน
ตัวอย่าง
ด้วย ufunc เราสามารถใช้add()
ฟังก์ชัน:
import numpy as np
x = [1, 2, 3, 4]
y = [4, 5, 6, 7]
z = np.add(x, y)
print(z)