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

คืนค่า gradient ของอาร์เรย์ N มิติใน Python


ภาพรวม

ใช้ numpy.gradient() คำนวณ gradient ของอาร์เรย์ N มิติ ใช้ central differences order 2 ที่จุดภายใน และ one-sided differences ที่ขอบเขต ผลลัพธ์มี shape เดียวกับ input คืน list ของ ndarrays ตรงกับ derivatives ตามแต่ละ dimension

พารามิเตอร์

  • f: อาร์เรย์ N มิติ samples ของ scalar function
  • varargs (optional): spacing ระหว่างค่า f (default = 1)
  • edge_order (optional): {1, 2} accuracy ที่ขอบเขต (default 1)
  • axis (optional): axis ที่คำนวณ gradient (default None = ทุก axis)

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

1. นำเข้า NumPy

import numpy as np

2. สร้างอาร์เรย์ 1D float

arr = np.array([20, 35, 57, 70, 85, 120], dtype=float)

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

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

4. คำนวณ gradient (ทุก axis = axis 0 เพราะ 1D)

print("\nResult (gradient)...\n", np.gradient(arr))

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

import numpy as np
arr = np.array([20, 35, 57, 70, 85, 120], dtype=float)
print("Our Array...\n", arr)
print("\nDimensions of our Array...\n", arr.ndim)
print("\nDatatype of our Array object...\n", arr.dtype)
print("\nResult (gradient)...\n", np.gradient(arr))

ผลลัพธ์

Our Array... [ 20.  35.  57.  70.  85. 120.]
Dimensions of our Array... 1
Datatype of our Array object... float64
Result (gradient)... [15.  18.5 17.5 14.  25.  35. ]

คำอธิบาย: Gradient 1D ใช้ central difference: f'[i] = (f[i+1] - f[i-1]) / 2 สำหรับจุดกลาง และ forward/backward difference ที่ปลาย