บทนำ
เพื่อคำนวณความต่างแบบ discrete n-th ให้ใช้เมธอด numpy.diff() ความต่างครั้งแรกกำหนดโดย out[i] = a[i+1] - a[i] ตามแกนที่กำหนด ความต่างระดับสูงกว่าคำนวณโดยใช้ diff แบบเรียกซ้ำ (recursively) เมธอด diff() ส่งคืนความต่าง n-th รูปร่างของเอาต์พุทเหมือนกับ a เว้นแต่ตามแกนที่มิติเล็กลง n ชนิดของเอาต์พุทเหมือนกับชนิดของความต่างระหว่างองค์ประกอบสองตัวของ a นี่คือเหมือนกับชนิดของ a ในกรณีส่วนใหญ่ ข้อยกเว้นที่โดดเด่นคือ datetime64 ซึ่งส่งคืนอาร์เรย์ timedelta64
พารามิเตอร์แรกคืออาร์เรย์อินพุท พารามิเตอร์ที่สองคือ n คือจำนวนครั้งที่ค่าถูกหาความต่าง หากเป็นศูนย์ อินพุทจะถูกส่งคืน كماเดิม พารามิเตอร์ที่สามคือแกนที่ความต่างถูกหา ค่าเริ่มต้นคือแกนสุดท้าย พารามิเตอร์ที่สี่คือค่าที่จะต่อหน้าหรือต่อท้ายกับอินพุทอาร์เรย์ตามแกนก่อนทำความต่าง ค่าสเกลาร์จะถูกขยายเป็นอาร์เรย์ที่มีความยาว 1 ในทิศทางของแกนและรูปร่างของอินพุทอาร์เรย์ตามแกนอื่นๆ ทั้งหมด
ขั้นตอน
ขั้นแรก ให้นำเข้าไลบรารีที่จำเป็น:
import numpy as np
สร้างอาร์เรย์ NumPy โดยใช้เมธอด array() เราได้เพิ่มองค์ประกอบแบบ int พร้อมกับ nan:
arr = np.array([10, 15, 30, 65, 80, 87, np.nan])
แสดงอาร์เรย์:
print("อาร์เรย์ของเรา...\n", arr)
ตรวจสอบมิติ:
print("\nมิติของอาร์เรย์...\n", arr.ndim)
ดูชนิดข้อมูล:
print("\nชนิดข้อมูลของออบเจกต์อาร์เรย์...\n", arr.dtype)
เพื่อคำนวณความต่างแบบ discrete n-th ให้ใช้เมธอด numpy.diff() ความต่างครั้งแรกกำหนดโดย out[i] = a[i+1] - a[i] ตามแกนที่กำหนด ความต่างระดับสูงกว่าคำนวณโดยใช้ diff แบบเรียกซ้ำ:
print("\nความต่างแบบ discrete..\n", np.diff(arr))
ตัวอย่างโค้ดสมบูรณ์
import numpy as np
# สร้างอาร์เรย์ NumPy โดยใช้เมธอด array()
# เราได้เพิ่มองค์ประกอบแบบ int พร้อมกับ nan
arr = np.array([10, 15, 30, 65, 80, 87, np.nan])
# แสดงอาร์เรย์
print("อาร์เรย์ของเรา...\n", arr)
# ตรวจสอบมิติ
print("\nมิติของอาร์เรย์...\n", arr.ndim)
# ดูชนิดข้อมูล
print("\nชนิดข้อมูลของออบเจกต์อาร์เรย์...\n", arr.dtype)
# เพื่อคำนวณความต่างแบบ discrete n-th ใช้ numpy.diff()
# ความต่างครั้งแรกกำหนดโดย out[i] = a[i+1] - a[i] ตามแกนที่กำหนด ความต่างระดับสูงกว่าคำนวณโดยใช้ diff แบบเรียกซ้ำ
print("\nความต่างแบบ discrete..\n", np.diff(arr))
ผลลัพธ์
อาร์เรย์ของเรา... [10. 15. 30. 65. 80. 87. nan] มิติของอาร์เรย์... 1 ชนิดข้อมูลของออบเจกต์อาร์เรย์... float64 ความต่างแบบ discrete.. [ 5. 15. 35. 15. 7. nan]