Computer >> Máy Tính >  >> Lập trình >> Python

Trả lại gradient của mảng N chiều trên trục 0 trong Python

Gradient được tính toán bằng cách sử dụng sự khác biệt trung tâm chính xác bậc hai ở các điểm bên trong và chênh lệch một phía chính xác bậc nhất hoặc thứ hai (về phía trước hoặc phía sau) tại các ranh giới. Gradient trả về do đó có cùng hình dạng với mảng đầu vào. Tham số thứ nhất, f là một mảng thứ nguyên chứa các mẫu của một hàm vô hướng. Tham số thứ 2 là varargs, tức là khoảng cách giữa các giá trị f. Khoảng cách đơn nhất mặc định cho tất cả các thứ nguyên.

Tham số thứ 3 là edge_order {1, 2} tức là Gradient được tính toán bằng cách sử dụng chênh lệch chính xác thứ N tại các ranh giới. Mặc định:1. Tham số thứ 4 là Gradient, chỉ được tính dọc theo trục hoặc các trục đã cho. Mặc định (axis =None) là tính toán gradient cho tất cả các trục của mảng đầu vào. trục có thể là số âm, trong trường hợp đó nó được tính từ trục cuối cùng đến trục đầu tiên. Phương thức trả về một danh sách các ndarrays tương ứng với các đạo hàm của f đối với mỗi chiều. Mỗi đạo hàm có cùng hình dạng với f.

Các bước

Đầu tiên, hãy nhập thư viện được yêu cầu -

import numpy as np

Tạo một mảng numpy bằng phương thức array (). Chúng tôi đã thêm các phần tử của kiểu float -

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

Hiển thị mảng -

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

Kiểm tra các thứ nguyên -

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

Lấy Datatype -

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

Gradient được tính toán bằng cách sử dụng sự khác biệt trung tâm chính xác bậc hai ở các điểm bên trong và chênh lệch một bên (về phía trước hoặc phía sau) chính xác bậc thứ nhất hoặc thứ hai tại các ranh giới. Gradient trả về do đó có cùng hình dạng với mảng đầu vào -

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

Ví dụ

import numpy as np

# Creating a numpy array using the array() method
# We have added elements of float type
arr = np.array([[20, 35, 57], [70, 85, 120]], dtype = float)

# Display the array
print("Our Array...\n",arr)

# Check the Dimensions
print("\nDimensions of our Array...\n",arr.ndim)

# Get the Datatype
print("\nDatatype of our Array object...\n",arr.dtype)

# The gradient is computed using second order accurate central differences in the interior points and either first or second order accurate one-sides (forward or backwards) differences at the boundaries. The returned gradient hence has the same shape as the input array.
print("\nResult (gradient)...\n",np.gradient(arr, axis = 0))

Đầu ra

Our Array...
[[ 20. 35. 57.]
[ 70. 85. 120.]]

Dimensions of our Array...
2

Datatype of our Array object...
float64

Result (gradient)...
[[50. 50. 63.]
[50. 50. 63.]]