Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Tính gradient của mảng N chiều theo trục cho trước trong Python


Gradient được tính bằng sai phân trung tâm bậc 2 chính xác ở các điểm nội bộ và sai phân một phía bậc 1 hoặc 2 ở biên. Gradient trả về có cùng hình dạng với mảng đầu vào. Tham số f là mảng N chiều chứa mẫu của hàm vô hướng. Tham số varargs là khoảng cách giữa các giá trị f (mặc định 1). Tham số edge_order {1, 2} là bậc chính xác ở biên (mặc định 1). Tham số axis là trục tính gradient (mặc định None - tính cho tất cả trục).

Các bước thực hiện

Nhập NumPy:

import numpy as np

Tạo mảng 2D float:

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

Hiển thị mảng:

print("Mảng của chúng ta...\n", arr)

Kiểm tra số chiều:

print("\nSố chiều của mảng...\n", arr.ndim)

Lấy kiểu dữ liệu:

print("\nKiểu dữ liệu của đối tượng mảng...\n", arr.dtype)

Tính gradient theo trục 0 (cột):

print("\nKết quả (gradient)...\n", np.gradient(arr, axis=0))

Ví dụ hoàn chỉnh

import numpy as np

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

print("Mảng của chúng ta...\n", arr)
print("\nSố chiều của mảng...\n", arr.ndim)
print("\nKiểu dữ liệu của đối tượng mảng...\n", arr.dtype)
print("\nKết quả (gradient)...\n", np.gradient(arr, axis=0))

Kết quả đầu ra

Mảng của chúng ta...
[[ 20.  35.  57.]
 [ 70.  85. 120.]]
Số chiều của mảng...
2
Kiểu dữ liệu của đối tượng mảng...
float64
Kết quả (gradient)...
[[50. 50. 63.]
 [50. 50. 63.]]