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

คำนวณ n-th discrete difference สำหรับ unsigned integer arrays ใน Python


ภาพรวม

ใช้ numpy.diff() คำนวณ n-th discrete difference ตาม axis ที่กำหนด first difference: out[i] = a[i+1] - a[i] higher differences คำนวณซ้ำด้วย diff recursively

สำคัญ: สำหรับ unsigned integer arrays ผลลัพธ์ก็จะเป็น unsigned ด้วย (underflow กลายเป็นค่ามาก)

พารามิเตอร์

  • a: อาร์เรย์อินพุท
  • n (optional): จำนวนครั้งที่ diff (default 1, 0 = คืน input)
  • axis (optional): axis ที่ diff (default -1 = last axis)
  • prepend/append (optional): ค่าเพิ่มก่อน/หลังก่อน diff

ขั้นตอนการทำงาน

1. นำเข้า NumPy

import numpy as np

2. สร้าง unsigned integer array

arr = np.array([1, 0], dtype=np.uint8)

3. แสดงข้อมูลอาร์เรย์

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

4. คำนวณ discrete difference (n=1)

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

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

import numpy as np
arr = np.array([1, 0], dtype=np.uint8)
print("Our Array...\n", arr)
print("\nDimensions of our Array...\n", arr.ndim)
print("\nDatatype of our Array object...\n", arr.dtype)
print("\nDiscrete difference..\n", np.diff(arr))

ผลลัพธ์

Our Array... [1 0]
Dimensions of our Array... 1
Datatype of our Array object... uint8
Discrete difference.. [255]

คำอธิบาย: 0 - 1 = -1 แต่เป็น uint8 (0-255) ดังนั้น underflow → 255 (2⁸ - 1) ต้องระวังการใช้ diff กับ unsigned types