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

คำนวณ discrete difference ครั้งที่ n บนแกน 0 ใน Python

ในการคำนวณ discrete difference ครั้งที่ n ใช้เมธอด numpy.diff() Diff แรกคือ out[i] = a[i+1] - a[i] ตามแกนที่กำหนด Diff ระดับสูงคำนวณโดยใช้ diff แบบ recursive เมธอด diff() ส่งคืน n-th differences รูปร่างเอาต์พุตเท่า a ยกเว้นแกนที่ dimension เล็กลง n ชนิดเอาต์พุตเท่าชนิดของความต่างระหว่างองค์ประกอบสองตัวของ a เป็นชนิดเดียวกับ a ในส่วนใหญ่ ข้อยกเว้นคือ datetime64 ให้ผลลัพธ์ timedelta64

พารามิเตอร์แรกคืออาร์เรย์อินพุต พารามิเตอร์ที่สอง n จำนวนครั้งที่ differenced หากศูนย์ คืนค่าอินพุตเหมือนเดิม พารามิเตอร์ที่สามคือแกนที่ diff ถูกนำไปใช้ ค่าเริ่มต้นคือแกนสุดท้าย พารามิเตอร์ที่สี่คือค่าที่จะ prepend หรือ append เข้ากับอินพุตตามแกนก่อนทำ diff ค่าสเกลาร์ขยายเป็นอาร์เรย์ความยาว 1 ตามทิศทางแกนและรูปร่างอินพุตตามแกนอื่นๆ

ขั้นตอน

ขั้นแรก ให้นำเข้าไลบรารี:

import numpy as np

สร้างอาร์เรย์ NumPy ด้วย array() เพิ่มองค์ประกอบ int พร้อม nan:

arr = np.array([[10, 15, 30, 65], [80, 87, np.nan, 120]])

แสดงอาร์เรย์:

print("Our Array...\n", arr)

ตรวจสอบมิติ:

print("\nDimensions of our Array...\n", arr.ndim)

ตรวจสอบชนิดข้อมูล:

print("\nDatatype of our Array object...\n", arr.dtype)

คำนวณ discrete difference บนแกน 0:

print("\nDiscrete difference..\n", np.diff(arr, axis=0))

ตัวอย่างโค้ดเต็ม

import numpy as np
# สร้างอาร์เรย์ NumPy ด้วย array()
# เพิ่มองค์ประกอบ int พร้อม nan
arr = np.array([[10, 15, 30, 65], [80, 87, np.nan, 120]])
# แสดงอาร์เรย์
print("Our Array...\n", arr)
# ตรวจสอบมิติ
print("\nDimensions of our Array...\n", arr.ndim)
# ตรวจสอบชนิดข้อมูล
print("\nDatatype of our Array object...\n", arr.dtype)
# คำนวณ n-th discrete difference
# ใช้ numpy.diff() diff แรก out[i] = a[i+1] - a[i] ตามแกน
# diff ระดับสูงคำนวณโดย diff แบบ recursive
print("\nDiscrete difference..\n", np.diff(arr, axis=0))

ผลลัพธ์

Our Array... [[ 10. 15. 30. 65.] [ 80. 87. nan 120.]]
Dimensions of our Array... 2
Datatype of our Array object... float64
Discrete difference.. [[70. 72. nan 55.]]