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

การคำนวณความต่าง離散 n-th ตามแกน 1 ใน 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, 120]])

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

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, axis=1))

ตัวอย่างโค้ดสมบูรณ์

import numpy as np
# สร้างอาร์เรย์ NumPy โดยใช้เมธอด array()
# เราได้เพิ่มองค์ประกอบแบบ int พร้อมกับ nan
arr = np.array([[10, 15, 30, 65], [80, 87, np.nan, 120]])
# แสดงอาร์เรย์
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, axis=1))

ผลลัพธ์

อาร์เรย์ของเรา...
 [[ 10.  15.  30.  65.]
 [ 80.  87. nan 120.]]
มิติของอาร์เรย์...
 2
ชนิดข้อมูลของออบเจกต์อาร์เรย์...
 float64
ความต่างแบบ discrete..
 [[ 5. 15. 35.]
 [ 7. nan nan]]