Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

การคำนวณความต่าง离散 n-th ใน Python


บทนำ

เพื่อคำนวณความต่างแบบ 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]