หากต้องการคำนวณรากที่สอง (square root) ของอินพุต ให้ใช้เมธอด np.emath.sqrt() (หรือ scimath.sqrt()) ใน NumPy เมธอดนี้จะคืนค่ารากที่สองของ x หาก x เป็นสเกลาร์ ผลลัพธ์จะเป็นสเกลาร์เช่นกัน มิฉะนั้นจะคืนค่าเป็นอาร์เรย์ พารามิเตอร์ x คือค่าอินพุต สำหรับองค์ประกอบอินพุตที่เป็นลบ จะคืนค่าเป็นจำนวนเชิงซ้อน
ขั้นตอนการใช้งาน
1. นำเข้าไลบรารีที่จำเป็น
import numpy as np
2. สร้างอาร์เรย์ NumPy ด้วยเมธอด array() (ค่าบวกทั้งหมด)
arr = np.array([1, 4, 9, 16, 25, 36])
3. แสดงอาร์เรย์
print("Our Array...\n", arr)
4. ตรวจสอบมิติ
print("\nDimensions of our Array...\n", arr.ndim)
5. ตรวจสอบชนิดข้อมูล
print("\nDatatype of our Array object...\n", arr.dtype)
6. ตรวจสอบรูปร่าง
print("\nShape of our Array object...\n", arr.shape)
7. คำนวณรากที่สองด้วย np.emath.sqrt()
print("\nResult...\n", np.emath.sqrt(arr))
ตัวอย่างโค้ดเต็ม
import numpy as np
# สร้างอาร์เรย์ NumPy (ค่าบวกทั้งหมด)
arr = np.array([1, 4, 9, 16, 25, 36])
# แสดงอาร์เรย์
print("Our Array...\n", arr)
# ตรวจสอบมิติ
print("\nDimensions of our Array...\n", arr.ndim)
# ตรวจสอบชนิดข้อมูล
print("\nDatatype of our Array object...\n", arr.dtype)
# ตรวจสอบรูปร่าง
print("\nShape of our Array object...\n", arr.shape)
# คำนวณรากที่สอง
print("\nResult...\n", np.emath.sqrt(arr))
ผลลัพธ์ที่ได้
Our Array...
[ 1 4 9 16 25 36]
Dimensions of our Array...
1
Datatype of our Array object...
int64
Shape of our Array object...
(6,)
Result...
[1. 2. 3. 4. 5. 6.]
คำอธิบายเพิ่มเติม
ตัวอย่างนี้แสดงการใช้ np.emath.sqrt() กับอาร์เรย์ที่มี ค่าบวกทั้งหมด (perfect squares: 1², 2², 3², 4², 5², 6²)
ผลลัพธ์คืออาร์เรย์ชนิด float64: [1. 2. 3. 4. 5. 6.]
แม้อินพุทจะเป็น integer และผลลัพธ์เป็นจำนวนจริงเต็ม แต่ np.emath.sqrt() จะคืนค่าเป็น float เสมอ (ไม่เหมือน np.sqrt() ที่อาจคืนค่า integer ในบางกรณี)
ข้อดีของการใช้ emath แทน numpy.sqrt() ธรรมดา:
- สม่ำเสมอ (consistent): คืนค่า float/complex เสมอ
- ปลอดภัย: หากในอนาคตอาร์เรย์มีค่าติดลบ เข้าจะไม่ error แต่คืนค่า complex แทน
- เหมาะสำหรับโค้ดที่ต้องการความเสถียรของชนิดข้อมูล (type stability)
ใช้ np.emath.sqrt() หารากที่สองของอาร์เรย์ค่าบวก คืนค่า float array [1. 2. 3. 4. 5. 6.] สำหรับ perfect squares