返回 N 维数组的梯度并在 Python 中指定边缘顺序


梯度是使用内部点的二阶精确中心差分以及边界处的一阶或二阶精确单边(向前或向后)差分计算的。因此,返回的梯度与输入数组具有相同的形状。第一个参数 f 是一个包含标量函数样本的 N 维数组。第二个参数是 varargs,即 f 值之间的间距。所有维度默认使用单位间距。

第三个参数是 edge_order{1, 2},即梯度是使用边界处 N 阶精确差分计算的。默认值:1。第四个参数是梯度,它仅沿给定的轴或轴计算。默认值(axis = None)是计算输入数组所有轴的梯度。axis 可以为负数,在这种情况下,它从最后一个轴到第一个轴进行计数。该方法返回一个 ndarray 列表,对应于 f 相对于每个维度的导数。每个导数都与 f 具有相同的形状。

步骤

首先,导入所需的库 -

import numpy as np

使用 array() 方法创建一个 numpy 数组。我们添加了浮点类型的元素 -

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, edge_order=2))

示例

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, edge_order=2))

输出

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

Dimensions of our Array...
1

Datatype of our Array object...
float64

Result (gradient)...
[11.5 18.5 17.5 14. 25. 45. ]

更新于: 2022年2月28日

501 次查看

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告